<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- saved from url=(0871)http://r1rk9np7bpcsfoeekl0khkd2juj27q3o-a-fc-opensocial.googleusercontent.com/gadgets/ifr?url=http://www.google.com/friendconnect/gadgets/members.xml&container=peoplesense&parent=http://manmoahn-openssl-net.blogspot.ca/&mid=0&view=profile&libs=google.blog&d=0.1-22c1fc1e_73bd0b97_5210c63e_9006a6ed_2b8a2ccb.7&lang=en&communityId=15448282781123522775&caller=http://manmoahn-openssl-net.blogspot.ca/2011/07/creating-serverclient-certificate-pair.html#st=e%3DAOG8GaDU4VJ%252FT4JpXxo28Z01Qwi9vCfeu%252FvMzgauLVivWO6zpPy0vot4vFA8aIOfO7%252Bb6A%252BERfJ%252BoNEJ60wZxRihQH5B4varL1S33cuXYxgKDcPQhmDXshoBKVwJlcoEwIb2VUZkBJ8fLe6LqhxuANdh0tY%252ByiC5Yj87PYZQlnhMMyRWBGSL48PShZFX5hM0Z0VnU27QRMXnnMBRtx5yQEjjA%252FXI36Fe1yPdG2wPDno7OILr1u5XXFKP%252Bo2b%252FAj%252B1mNkLJqGN1OPKXi5DwrX3p9rtFCwZeAG9LBoUx0iQaWLqVyOesF5U7Tw3znhWd%252BI5zaMnBx21Srh%26c%3Dpeoplesense&rpctoken=1986276523& -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><script>(function(){var a=window,e="tick",g="external";(function(){function h(b){this.t={};this.tick=function(b,d,c){c=void 0!=c?c:(new Date).getTime();this.t[b]=[c,d]};this[e]("start",null,b)}var b=new h;a.jstiming={Timer:h,load:b};if(a.performance&&a.performance.timing){var b=a.performance.timing,d=a.jstiming.load,f=b.navigationStart,b=b.responseStart;0<f&&b>=f&&(d[e]("_wtsrt",void 0,f),d[e]("wtsrt_","_wtsrt",b),d[e]("tbsd_","wtsrt_"))}try{var b=top!=self,k=a.location.href,c=null;a.chrome&&a.chrome.csi&&(c=Math.floor(a.chrome.csi().pageT),d&&0<f&&(d[e]("_tbnd",
void 0,a.chrome.csi().startE),d[e]("tbnd_","_tbnd",f)));null==c&&a.gtbExternal&&(c=b?a.gtbExternal.frameT(k):a.gtbExternal.pageT());null==c&&a[g]&&(b?c=a[g].frameT(k):(c=a[g].pageT,d&&0<f&&(d[e]("_tbnd",void 0,a[g].startE),d[e]("tbnd_","_tbnd",f))));c&&(a.jstiming.pt=c)}catch(l){}})();})();
window["__csi"]={a:false,b:false,c:"peoplesense",v:"profile",g:"g__members",d:false};if(window.jstiming){window.jstiming.beaconImageReferences_={};window.jstiming.reportCounter_=1;var getTick=function(c,b,d){var a=c.t[b],h=c.t.start;if(a&&(h||d))return a=c.t[b][0],h=void 0!=d?d:h[0],a-h},getReportUri=function(c,b,d){var a="";window.jstiming.pt&&(a+="&srt="+window.jstiming.pt,delete window.jstiming.pt);try{window.external&&window.external.tran?a+="&tran="+window.external.tran:window.gtbExternal&&window.gtbExternal.tran?a+="&tran="+window.gtbExternal.tran():window.chrome&&window.chrome.csi&&
(a+="&tran="+window.chrome.csi().tran)}catch(h){}var f=window.chrome;if(f&&(f=f.loadTimes)){f().wasFetchedViaSpdy&&(a+="&p=s");if(f().wasNpnNegotiated){var a=a+"&npn=1",g=f().npnNegotiatedProtocol;g&&(a+="&npnv="+(encodeURIComponent||escape)(g))}f().wasAlternateProtocolAvailable&&(a+="&apa=1")}var e=c.t,n=e.start,f=[],g=[],k;for(k in e)if("start"!=k&&0!=k.indexOf("_")){var l=e[k][1];l?e[l]&&g.push(k+"."+getTick(c,k,e[l][0])):n&&f.push(k+"."+getTick(c,k))}delete e.start;if(b)for(var q in b)a+="&"+
q+"="+b[q];(b=d)||(b="https:"==document.location.protocol?"https://csi.gstatic.com/csi":"http://csi.gstatic.com/csi");return c=[b,"?v=3","&s="+(window.jstiming.sn||"opensocial-gadgets")+"&action=",c.name,g.length?"&it="+g.join(","):"",a,"&rt=",f.join(",")].join("")},sendReport_=function(c,b,d){c=getReportUri(c,b,d);if(!c)return"";b=new Image;var a=window.jstiming.reportCounter_++;window.jstiming.beaconImageReferences_[a]=b;b.onload=b.onerror=function(){window.jstiming&&delete window.jstiming.beaconImageReferences_[a]};
b.src=c;b=null;return c};window.jstiming.report=function(c,b,d){if("prerender"==document.webkitVisibilityState){var a="webkitvisibilitychange",h=!1,f=function(){if(!h){b?b.prerender="1":b={prerender:"1"};var g;"prerender"==document.webkitVisibilityState?g=!1:(sendReport_(c,b,d),g=!0);g&&(h=!0,document.removeEventListener(a,f,!1))}};document.addEventListener(a,f,!1);return""}return sendReport_(c,b,d)}};var google=window.google||{};
google.csi=function(){function c(a){var b=e?e:document.location.href;return(a=b.match(RegExp("[?&]"+a+"=([^&#]+)")))?a[1]:null}function b(a){window.jstiming.load.tick(a);g[a]=(new Date).getTime()}function d(){if(!k){var a=c("url")||"default",b=window.__csi||{},d=b.c||"default",h=b.v||"default",e=window.encodeURIComponent?encodeURIComponent:escape,e={gadget:e(a),container:e(d),view:e(h)},l=window.__dflags||{},p=[];b.g&&p.push(b.g);if(b.d)for(var m in l)"control"!==l[m]&&(e[m]=l[m],"true"===l[m]&&p.push(m));
e.e=p.join(",");m=n?n:document.location.protocol;m=f[m];window.jstiming.load.name=[d,"_",h].join("");window.jstiming.report(window.jstiming.load,e,m);(d=window.gadgets)&&(d.rpc&&b.b)&&(g.url=a,g.id=c("mid"),d.rpc.call(null,"time_iframe",null,g));k=!0}}function a(a){window.addEventListener?window.addEventListener("load",a,!1):window.attachEvent&&window.attachEvent("onload",a)}function h(a){window.onbeforeunload=a}var f={"http:":"http://csi.gstatic.com/csi","https:":"https://gg.google.com/csi"},g={},
e,n,k=!1,l=window.__csi||{};l.a?(a(function(){b("prt")}),h(function(){d()})):a(function(){b("ol");b("prt");d()});return{reset_:function(){k=!1},mockHref_:function(a){e=a},mockProtocol_:function(a){n=a},report_:d,tickPrtAndReport:function(){b("prt");d()},tickDl:function(){b("dl")}}}();
</script><script>
/* mp-start */
window['___jsl']=window['___jsl']||{};
/* mp-end */
</script><script>window['__isgadget']=true;</script><script src="google.blog.js"></script><script>window['___jsl'] = window['___jsl'] || {};(window['___jsl']['ci'] = (window['___jsl']['ci'] || [])).push({"opensocial":{"invalidatePath":"//%host%/gadgets/api/rpc","domain":"google.com","path":"http://%host%/ps/api/rpc","supportedFields":{"person":["id","name","thumbnailUrl","nickname","profileUrl"],"mediaItem":["album_id","created","description","duration","file_size","id","language","last_updated","location","mime_type","num_comments","num_views","num_votes","rating","start_time","tagged_people","tags","thumbnail_url","title","type","url"],"sortOrder":["name"],"name":["unstructured","familyName","givenName","additionalName","honorificPrefix","honorificSuffix"],"album":["id","thumbnailUrl","title","description","location","ownerId"],"filterType":["all","hasApp"],"activity":["id","externalId","userId","appId","streamTitle","streamUrl","streamSourceUrl","streamFaviconUrl","title","body","url","mediaItems","postedTime","userThumbnailUrl","userProfileUrl","userName"],"activityMediaItem":["type","mimeType","url"]}},"rpc":{"commSwf":"//xpc.googleusercontent.com/gadgets/xpc.swf","passReferrer":"p2c:query","parentRelayUrl":"/rpc_relay.html"},"shindig.auth":{"authToken":"","trustedJson":""},"views":{"canvas":{"isOnlyVisible":true,"urlTemplate":"http://localhost/gadgets/canvas?{var}","aliases":["FULL_PAGE"]},"embed":{"isOnlyVisible":false,"urlTemplate":"http://localhost/gadgets/embed?{var}","aliases":["profile","DASHBOARD","default"]},"profile":{"isOnlyVisible":false,"urlTemplate":"http://localhost/gadgets/profile?{var}","aliases":["DASHBOARD","default"]}},"core.util":{"content-rewrite":{"exclude-urls":".*"},"views":{},"dynamic-height":{},"osapi":{},"core":{},"opensocial-data":{},"skins":{},"opensocial-0.8":{}},"osapi.services":{"//%host%/gadgets/api/rpc":["http.get","http.post","http.put","http.delete","http.head","cache.invalidate"],"//%host%/ps/api/rpc":["activities.get","activities.create","activities.update","activities.delete","activities.supportedFields","appdata.get","appdata.create","appdata.update","appdata.delete","extensions.get","people.get","people.put","people.supportedFields","posts.get"]},"skins":{"properties":{"BG_POSITION":"","FONT_COLOR":"","BG_IMAGE":"","ANCHOR_COLOR":"","BG_REPEAT":"","BG_COLOR":""}},"core.io":{"jsonProxyUrl":"//%host%/gadgets/makeRequest","proxyUrl":"//www-fc-opensocial.googleusercontent.com/gadgets/proxy/refresh=%refresh%&container=%container%%rewriteMime%&gadget=%gadget%/%rawurl%"}});shindig.Auth=function(){var authToken=null;
var trusted=null;
function addParamsToToken(urlParams){var args=authToken.split("&");
for(var i=0;
i<args.length;
i++){var nameAndValue=args[i].split("=");
if(nameAndValue.length===2){var name=nameAndValue[0];
var value=nameAndValue[1];
if(value==="$"){value=encodeURIComponent(urlParams[name]);
args[i]=name+"="+value
}}}authToken=args.join("&")
}function init(configuration){var urlParams=gadgets.util.getUrlParameters();
var config=configuration["shindig.auth"]||{};
if(config.authToken){authToken=config.authToken
}else{if(urlParams.st){authToken=urlParams.st
}}if(authToken!==null){addParamsToToken(urlParams)
}if(config.trustedJson){trusted=(eval("("+config.trustedJson+")"))
}}gadgets.config.register("shindig.auth",null,init);
return{getSecurityToken:function(){return authToken
},updateSecurityToken:function(newToken){authToken=newToken
},getTrustedData:function(){return trusted
}}
};;
shindig.auth=new shindig.Auth();;
var opensocial=opensocial||{};
opensocial.requestSendMessage=function(a,d,b,c){return opensocial.Container.get().requestSendMessage(a,d,b,c)
};
opensocial.requestShareApp=function(a,d,b,c){opensocial.Container.get().requestShareApp(a,d,b,c)
};
opensocial.requestCreateActivity=function(c,b,a){if(!c||(!c.getField(opensocial.Activity.Field.TITLE)&&!c.getField(opensocial.Activity.Field.TITLE_ID))){if(a){window.setTimeout(function(){a(new opensocial.ResponseItem(null,null,opensocial.ResponseItem.Error.BAD_REQUEST,"You must pass in an activity with a title or title id."))
},0)
}return
}opensocial.Container.get().requestCreateActivity(c,b,a)
};
opensocial.CreateActivityPriority={HIGH:"HIGH",LOW:"LOW"};
opensocial.hasPermission=function(a){return opensocial.Container.get().hasPermission(a)
};
opensocial.requestPermission=function(b,c,a){opensocial.Container.get().requestPermission(b,c,a)
};
opensocial.Permission={VIEWER:"viewer"};
opensocial.getEnvironment=function(){return opensocial.Container.get().getEnvironment()
};
opensocial.newDataRequest=function(){return opensocial.Container.get().newDataRequest()
};
opensocial.newActivity=function(a){return opensocial.Container.get().newActivity(a)
};
opensocial.newAlbum=function(a){return opensocial.Container.get().newAlbum(a)
};
opensocial.newMediaItem=function(c,a,b){return opensocial.Container.get().newMediaItem(c,a,b)
};
opensocial.newMessage=function(a,b){return opensocial.Container.get().newMessage(a,b)
};
opensocial.EscapeType={HTML_ESCAPE:"htmlEscape",NONE:"none"};
opensocial.newIdSpec=function(a){return opensocial.Container.get().newIdSpec(a)
};
opensocial.newNavigationParameters=function(a){return opensocial.Container.get().newNavigationParameters(a)
};
opensocial.invalidateCache=function(){opensocial.Container.get().invalidateCache()
};
Function.prototype.inherits=function(a){function b(){}b.prototype=a.prototype;
this.superClass_=a.prototype;
this.prototype=new b();
this.prototype.constructor=this
};;
opensocial.Activity=function(a){this.fields_=a
};
opensocial.Activity.Field={TITLE_ID:"titleId",TITLE:"title",TEMPLATE_PARAMS:"templateParams",URL:"url",MEDIA_ITEMS:"mediaItems",BODY_ID:"bodyId",BODY:"body",EXTERNAL_ID:"externalId",STREAM_TITLE:"streamTitle",STREAM_URL:"streamUrl",STREAM_SOURCE_URL:"streamSourceUrl",STREAM_FAVICON_URL:"streamFaviconUrl",PRIORITY:"priority",ID:"id",USER_ID:"userId",APP_ID:"appId",POSTED_TIME:"postedTime"};
opensocial.Activity.prototype.getId=function(){return this.getField(opensocial.Activity.Field.ID)
};
opensocial.Activity.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};
opensocial.Activity.prototype.setField=function(a,b){return(this.fields_[a]=b)
};;
opensocial.Address=function(a){this.fields_=a||{}
};
opensocial.Address.Field={TYPE:"type",UNSTRUCTURED_ADDRESS:"unstructuredAddress",PO_BOX:"poBox",STREET_ADDRESS:"streetAddress",EXTENDED_ADDRESS:"extendedAddress",REGION:"region",LOCALITY:"locality",POSTAL_CODE:"postalCode",COUNTRY:"country",LATITUDE:"latitude",LONGITUDE:"longitude"};
opensocial.Address.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};;
opensocial.Album=function(a){this.fields_=a||{}
};
opensocial.Album.Field={DESCRIPTION:"description",ID:"id",LOCATION:"location",MEDIA_ITEM_COUNT:"mediaItemCount",MEDIA_MIME_TYPE:"mediaMimeType",MEDIA_TYPE:"mediaType",OWNER_ID:"ownerId",THUMBNAIL_URL:"thumbnailUrl",TITLE:"title"};
opensocial.Album.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};
opensocial.Album.prototype.setField=function(a,b){return this.fields_[a]=b
};;
opensocial.BodyType=function(a){this.fields_=a||{}
};
opensocial.BodyType.Field={BUILD:"build",HEIGHT:"height",WEIGHT:"weight",EYE_COLOR:"eyeColor",HAIR_COLOR:"hairColor"};
opensocial.BodyType.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};;
opensocial.Collection=function(c,b,a){this.array_=c||[];
this.offset_=b||0;
this.totalSize_=a||this.array_.length
};
opensocial.Collection.prototype.getById=function(c){for(var a=0;
a<this.size();
a++){var b=this.array_[a];
if(b.getId()===c){return b
}}return null
};
opensocial.Collection.prototype.size=function(){return this.array_.length
};
opensocial.Collection.prototype.each=function(b){for(var a=0;
a<this.size();
a++){b(this.array_[a])
}};
opensocial.Collection.prototype.asArray=function(){return this.array_
};
opensocial.Collection.prototype.getTotalSize=function(){return this.totalSize_
};
opensocial.Collection.prototype.getOffset=function(){return this.offset_
};;
opensocial.Container=function(){};
opensocial.Container.container_=null;
opensocial.Container.setContainer=function(a){opensocial.Container.container_=a
};
opensocial.Container.get=function(){return opensocial.Container.container_
};
opensocial.Container.prototype.getEnvironment=function(){};
opensocial.Container.prototype.requestSendMessage=function(a,d,b,c){gadgets.rpc.call(null,"requestSendMessage",b,a,d,b,c)
};
opensocial.Container.prototype.requestShareApp=function(a,d,b,c){if(b){window.setTimeout(function(){b(new opensocial.ResponseItem(null,null,opensocial.ResponseItem.Error.NOT_IMPLEMENTED,null))
},0)
}};
opensocial.Container.prototype.requestCreateActivity=function(c,b,a){if(a){window.setTimeout(function(){a(new opensocial.ResponseItem(null,null,opensocial.ResponseItem.Error.NOT_IMPLEMENTED,null))
},0)
}};
opensocial.Container.prototype.hasPermission=function(a){return false
};
opensocial.Container.prototype.requestPermission=function(b,c,a){if(a){window.setTimeout(function(){a(new opensocial.ResponseItem(null,null,opensocial.ResponseItem.Error.NOT_IMPLEMENTED,null))
},0)
}};
opensocial.Container.prototype.requestData=function(a,b){};
opensocial.Container.prototype.newCreateAlbumRequest=function(b,a){};
opensocial.Container.prototype.newCreateMediaItemRequest=function(a,c,b){};
opensocial.Container.prototype.newDeleteAlbumRequest=function(a,b){};
opensocial.Container.prototype.newFetchPersonRequest=function(b,a){};
opensocial.Container.prototype.newFetchPeopleRequest=function(a,b){};
opensocial.Container.prototype.newFetchPersonAppDataRequest=function(a,c,b){};
opensocial.Container.prototype.newUpdatePersonAppDataRequest=function(a,b){};
opensocial.Container.prototype.newRemovePersonAppDataRequest=function(a){};
opensocial.Container.prototype.newUpdateAlbumRequest=function(b,c,a){};
opensocial.Container.prototype.newUpdateMediaItemRequest=function(b,d,c,a){};
opensocial.Container.prototype.newFetchActivitiesRequest=function(a,b){};
opensocial.Container.prototype.newFetchAlbumsRequest=function(a,b){};
opensocial.Container.prototype.newFetchMediaItemsRequest=function(a,b){};
opensocial.Container.prototype.newFetchMessageCollectionsRequest=function(a,b){};
opensocial.Container.prototype.newFetchMessagesRequest=function(a,c,b){};
opensocial.Container.prototype.newCollection=function(c,b,a){return new opensocial.Collection(c,b,a)
};
opensocial.Container.prototype.newPerson=function(a,b,c){return new opensocial.Person(a,b,c)
};
opensocial.Container.prototype.newActivity=function(a){return new opensocial.Activity(a)
};
opensocial.Container.prototype.newAlbum=function(a){return new opensocial.Album(a)
};
opensocial.Container.prototype.newMediaItem=function(c,a,b){return new opensocial.MediaItem(c,a,b)
};
opensocial.Container.prototype.newMessage=function(a,b){return new opensocial.Message(a,b)
};
opensocial.Container.prototype.newIdSpec=function(a){return new opensocial.IdSpec(a)
};
opensocial.Container.prototype.newNavigationParameters=function(a){return new opensocial.NavigationParameters(a)
};
opensocial.Container.prototype.newResponseItem=function(a,c,b,d){return new opensocial.ResponseItem(a,c,b,d)
};
opensocial.Container.prototype.newDataResponse=function(a,b){return new opensocial.DataResponse(a,b)
};
opensocial.Container.prototype.newDataRequest=function(){return new opensocial.DataRequest()
};
opensocial.Container.prototype.newEnvironment=function(b,a){return new opensocial.Environment(b,a)
};
opensocial.Container.prototype.invalidateCache=function(){};
opensocial.Container.isArray=function(a){return a instanceof Array
};
opensocial.Container.getField=function(a,b,c){var d=a[b];
return opensocial.Container.escape(d,c,false)
};
opensocial.Container.escape=function(c,b,a){if(b&&b[opensocial.DataRequest.DataRequestFields.ESCAPE_TYPE]==opensocial.EscapeType.NONE){return c
}else{return gadgets.util.escape(c,a)
}};;
opensocial.DataRequest=function(){this.requestObjects_=[]
};
opensocial.DataRequest.prototype.requestObjects_=null;
opensocial.DataRequest.prototype.getRequestObjects=function(){return this.requestObjects_
};
opensocial.DataRequest.prototype.add=function(b,a){return this.requestObjects_.push({key:a,request:b})
};
opensocial.DataRequest.prototype.send=function(a){var b=a||function(){};
opensocial.Container.get().requestData(this,b)
};
opensocial.DataRequest.SortOrder={TOP_FRIENDS:"topFriends",NAME:"name"};
opensocial.DataRequest.FilterType={ALL:"all",HAS_APP:"hasApp",TOP_FRIENDS:"topFriends",IS_FRIENDS_WITH:"isFriendsWith"};
opensocial.DataRequest.PeopleRequestFields={PROFILE_DETAILS:"profileDetail",SORT_ORDER:"sortOrder",FILTER:"filter",FILTER_OPTIONS:"filterOptions",FIRST:"first",MAX:"max",APP_DATA:"appData",ESCAPE_TYPE:"escapeType"};
opensocial.DataRequest.prototype.addDefaultParam=function(c,b,a){c[b]=c[b]||a
};
opensocial.DataRequest.prototype.addDefaultProfileFields=function(b){var a=opensocial.DataRequest.PeopleRequestFields;
var c=b[a.PROFILE_DETAILS]||[];
b[a.PROFILE_DETAILS]=c.concat([opensocial.Person.Field.ID,opensocial.Person.Field.NAME,opensocial.Person.Field.THUMBNAIL_URL])
};
opensocial.DataRequest.prototype.asArray=function(a){if(opensocial.Container.isArray(a)){return a
}else{return[a]
}};
opensocial.DataRequest.prototype.newCreateAlbumRequest=function(b,a){return opensocial.Container.get().newCreateAlbumRequest(b,a)
};
opensocial.DataRequest.prototype.newCreateMediaItemRequest=function(a,c,b){return opensocial.Container.get().newCreateMediaItemRequest(a,c,b)
};
opensocial.DataRequest.prototype.newDeleteAlbumRequest=function(a,b){return opensocial.Container.get().newDeleteAlbumRequest(a,b)
};
opensocial.DataRequest.prototype.newFetchPersonRequest=function(b,a){a=a||{};
this.addDefaultProfileFields(a);
return opensocial.Container.get().newFetchPersonRequest(b,a)
};
opensocial.DataRequest.prototype.newFetchPeopleRequest=function(b,c){c=c||{};
var a=opensocial.DataRequest.PeopleRequestFields;
this.addDefaultProfileFields(c);
this.addDefaultParam(c,a.SORT_ORDER,opensocial.DataRequest.SortOrder.TOP_FRIENDS);
this.addDefaultParam(c,a.FILTER,opensocial.DataRequest.FilterType.ALL);
this.addDefaultParam(c,a.FIRST,0);
this.addDefaultParam(c,a.MAX,20);
return opensocial.Container.get().newFetchPeopleRequest(b,c)
};
opensocial.DataRequest.AlbumRequestFields={FIRST:"first",MAX:"max"};
opensocial.DataRequest.MediaItemRequestFields={FIRST:"first",MAX:"max"};
opensocial.DataRequest.DataRequestFields={ESCAPE_TYPE:"escapeType"};
opensocial.DataRequest.prototype.newFetchPersonAppDataRequest=function(a,c,b){return opensocial.Container.get().newFetchPersonAppDataRequest(a,this.asArray(c),b)
};
opensocial.DataRequest.prototype.newUpdateAlbumRequest=function(a,b,c){return opensocial.Container.get().newUpdateAlbumRequest(a,b,c)
};
opensocial.DataRequest.prototype.newUpdateMediaItemRequest=function(a,c,b,d){return opensocial.Container.get().newUpdateMediaItemRequest(a,c,b,d)
};
opensocial.DataRequest.prototype.newUpdatePersonAppDataRequest=function(a,b){return opensocial.Container.get().newUpdatePersonAppDataRequest(a,b)
};
opensocial.DataRequest.prototype.newRemovePersonAppDataRequest=function(a){return opensocial.Container.get().newRemovePersonAppDataRequest(a)
};
opensocial.DataRequest.ActivityRequestFields={APP_ID:"appId",FIRST:"first",MAX:"max"};
opensocial.DataRequest.prototype.newFetchActivitiesRequest=function(b,c){c=c||{};
var a=opensocial.DataRequest.ActivityRequestFields;
this.addDefaultParam(c,a.FIRST,0);
this.addDefaultParam(c,a.MAX,20);
return opensocial.Container.get().newFetchActivitiesRequest(b,c)
};
opensocial.DataRequest.prototype.newFetchAlbumsRequest=function(b,c){c=c||{};
var a=opensocial.DataRequest.AlbumRequestFields;
this.addDefaultParam(c,a.FIRST,0);
this.addDefaultParam(c,a.MAX,20);
return opensocial.Container.get().newFetchAlbumsRequest(b,c)
};
opensocial.DataRequest.prototype.newFetchMediaItemsRequest=function(b,c,d){d=d||{};
var a=opensocial.DataRequest.MediaItemRequestFields;
this.addDefaultParam(d,a.FIRST,0);
this.addDefaultParam(d,a.MAX,20);
return opensocial.Container.get().newFetchMediaItemsRequest(b,c,d)
};
opensocial.DataRequest.prototype.newFetchMessageCollectionsRequest=function(a,b){b=b||{};
return opensocial.Container.get().newFetchMessageCollectionsRequest(a,b)
};
opensocial.DataRequest.prototype.newFetchMessagesRequest=function(a,c,b){b=b||{};
return opensocial.Container.get().newFetchMessagesRequest(a,c,b)
};;
opensocial.DataResponse=function(a,b,c){this.responseItems_=a;
this.globalError_=b;
this.errorMessage_=c
};
opensocial.DataResponse.prototype.hadError=function(){return !!this.globalError_
};
opensocial.DataResponse.prototype.getErrorMessage=function(){return this.errorMessage_
};
opensocial.DataResponse.prototype.get=function(a){return this.responseItems_[a]
};;
opensocial.Email=function(a){this.fields_=a||{}
};
opensocial.Email.Field={TYPE:"type",ADDRESS:"address"};
opensocial.Email.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};;
opensocial.Enum=function(b,a){this.key=b;
this.displayValue=a
};
opensocial.Enum.prototype.getKey=function(){return gadgets.util.escape(this.key)
};
opensocial.Enum.prototype.getDisplayValue=function(){return gadgets.util.escape(this.displayValue)
};
opensocial.Enum.Smoker={NO:"NO",YES:"YES",SOCIALLY:"SOCIALLY",OCCASIONALLY:"OCCASIONALLY",REGULARLY:"REGULARLY",HEAVILY:"HEAVILY",QUITTING:"QUITTING",QUIT:"QUIT"};
opensocial.Enum.Drinker={NO:"NO",YES:"YES",SOCIALLY:"SOCIALLY",OCCASIONALLY:"OCCASIONALLY",REGULARLY:"REGULARLY",HEAVILY:"HEAVILY",QUITTING:"QUITTING",QUIT:"QUIT"};
opensocial.Enum.Gender={MALE:"MALE",FEMALE:"FEMALE"};
opensocial.Enum.LookingFor={DATING:"DATING",FRIENDS:"FRIENDS",RELATIONSHIP:"RELATIONSHIP",NETWORKING:"NETWORKING",ACTIVITY_PARTNERS:"ACTIVITY_PARTNERS",RANDOM:"RANDOM"};
opensocial.Enum.Presence={AWAY:"AWAY",CHAT:"CHAT",DND:"DND",OFFLINE:"OFFLINE",ONLINE:"ONLINE",XA:"XA"};;
opensocial.Environment=function(b,a){this.domain=b;
this.supportedFields=a
};
opensocial.Environment.prototype.getDomain=function(){return this.domain
};
opensocial.Environment.ObjectType={PERSON:"person",ADDRESS:"address",BODY_TYPE:"bodyType",EMAIL:"email",NAME:"name",ORGANIZATION:"organization",PHONE:"phone",URL:"url",ACTIVITY:"activity",MEDIA_ITEM:"mediaItem",MESSAGE:"message",MESSAGE_TYPE:"messageType",SORT_ORDER:"sortOrder",FILTER_TYPE:"filterType"};
opensocial.Environment.prototype.supportsField=function(a,c){var b=this.supportedFields[a]||[];
return !!b[c]
};;
opensocial.IdSpec=function(a){this.fields_=a||{}
};
opensocial.IdSpec.Field={USER_ID:"userId",GROUP_ID:"groupId",NETWORK_DISTANCE:"networkDistance"};
opensocial.IdSpec.PersonId={OWNER:"OWNER",VIEWER:"VIEWER"};
opensocial.IdSpec.GroupId={SELF:"SELF",FRIENDS:"FRIENDS",ALL:"ALL"};
opensocial.IdSpec.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};
opensocial.IdSpec.prototype.setField=function(a,b){return(this.fields_[a]=b)
};;
opensocial.MediaItem=function(d,b,c){this.fields_={};
if(c){for(var a in c){if(c.hasOwnProperty(a)){this.fields_[a]=c[a]
}}}this.fields_[opensocial.MediaItem.Field.MIME_TYPE]=d;
this.fields_[opensocial.MediaItem.Field.URL]=b
};
opensocial.MediaItem.Type={IMAGE:"image",VIDEO:"video",AUDIO:"audio"};
opensocial.MediaItem.Field={ALBUM_ID:"albumId",CREATED:"created",DESCRIPTION:"description",DURATION:"duration",FILE_SIZE:"fileSize",ID:"id",LANGUAGE:"language",LAST_UPDATED:"lastUpdated",LOCATION:"location",MIME_TYPE:"mimeType",NUM_COMMENTS:"numComments",NUM_VIEWS:"numViews",NUM_VOTES:"numVotes",RATING:"rating",START_TIME:"startTime",TAGGED_PEOPLE:"taggedPeople",TAGS:"tags",THUMBNAIL_URL:"thumbnailUrl",TITLE:"title",TYPE:"type",URL:"url"};
opensocial.MediaItem.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};
opensocial.MediaItem.prototype.setField=function(a,b){return(this.fields_[a]=b)
};;
opensocial.MessageCollection=function(a){this.fields_=a||{}
};
opensocial.MessageCollection.Field={ID:"id",TITLE:"title",TOTAL:"total",UNREAD:"unread",UPDATED:"updated",URLS:"urls"};
opensocial.MessageCollection.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};
opensocial.MessageCollection.prototype.setField=function(a,b){return this.fields_[a]=b
};;
opensocial.Message=function(a,b){if(typeof a=="string"){this.fields_=b||{};
this.fields_[opensocial.Message.Field.BODY]=a
}else{this.fields_=a||{}
}};
opensocial.Message.Field={APP_URL:"appUrl",BODY:"body",BODY_ID:"bodyId",COLLECTION_IDS:"collectionIds",ID:"id",PARENT_ID:"parentId",RECIPIENTS:"recipients",SENDER_ID:"senderId",STATUS:"status",TIME_SENT:"timeSent",TITLE:"title",TITLE_ID:"titleId",TYPE:"type",UPDATED:"updated",URLS:"urls"};
opensocial.Message.Type={EMAIL:"email",NOTIFICATION:"notification",PRIVATE_MESSAGE:"privateMessage",PUBLIC_MESSAGE:"publicMessage"};
opensocial.Message.Status={NEW:"new",DELETED:"deleted",FLAGGED:"flagged"};
opensocial.Message.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};
opensocial.Message.prototype.setField=function(a,b){return(this.fields_[a]=b)
};;
opensocial.Name=function(a){this.fields_=a||{}
};
opensocial.Name.Field={FAMILY_NAME:"familyName",GIVEN_NAME:"givenName",ADDITIONAL_NAME:"additionalName",HONORIFIC_PREFIX:"honorificPrefix",HONORIFIC_SUFFIX:"honorificSuffix",UNSTRUCTURED:"unstructured"};
opensocial.Name.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};;
opensocial.NavigationParameters=function(a){this.fields_=a||{}
};
opensocial.NavigationParameters.Field={VIEW:"view",OWNER:"owner",PARAMETERS:"parameters"};
opensocial.NavigationParameters.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};
opensocial.NavigationParameters.prototype.setField=function(a,b){return(this.fields_[a]=b)
};
opensocial.NavigationParameters.DestinationType={VIEWER_DESTINATION:"viewerDestination",RECIPIENT_DESTINATION:"recipientDestination"};;
opensocial.Organization=function(a){this.fields_=a||{}
};
opensocial.Organization.Field={NAME:"name",TITLE:"title",DESCRIPTION:"description",FIELD:"field",SUB_FIELD:"subField",START_DATE:"startDate",END_DATE:"endDate",SALARY:"salary",ADDRESS:"address",WEBPAGE:"webpage"};
opensocial.Organization.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};;
opensocial.Person=function(a,b,c){this.fields_=a||{};
this.isOwner_=b;
this.isViewer_=c
};
opensocial.Person.Field={ID:"id",NAME:"name",NICKNAME:"nickname",THUMBNAIL_URL:"thumbnailUrl",PROFILE_URL:"profileUrl",CURRENT_LOCATION:"currentLocation",ADDRESSES:"addresses",EMAILS:"emails",PHONE_NUMBERS:"phoneNumbers",ABOUT_ME:"aboutMe",STATUS:"status",PROFILE_SONG:"profileSong",PROFILE_VIDEO:"profileVideo",GENDER:"gender",SEXUAL_ORIENTATION:"sexualOrientation",RELATIONSHIP_STATUS:"relationshipStatus",AGE:"age",DATE_OF_BIRTH:"dateOfBirth",BODY_TYPE:"bodyType",ETHNICITY:"ethnicity",SMOKER:"smoker",DRINKER:"drinker",CHILDREN:"children",PETS:"pets",LIVING_ARRANGEMENT:"livingArrangement",TIME_ZONE:"timeZone",LANGUAGES_SPOKEN:"languagesSpoken",JOBS:"jobs",JOB_INTERESTS:"jobInterests",SCHOOLS:"schools",INTERESTS:"interests",URLS:"urls",MUSIC:"music",MOVIES:"movies",TV_SHOWS:"tvShows",BOOKS:"books",ACTIVITIES:"activities",SPORTS:"sports",HEROES:"heroes",QUOTES:"quotes",CARS:"cars",FOOD:"food",TURN_ONS:"turnOns",TURN_OFFS:"turnOffs",TAGS:"tags",ROMANCE:"romance",SCARED_OF:"scaredOf",HAPPIEST_WHEN:"happiestWhen",FASHION:"fashion",HUMOR:"humor",LOOKING_FOR:"lookingFor",RELIGION:"religion",POLITICAL_VIEWS:"politicalViews",HAS_APP:"hasApp",NETWORK_PRESENCE:"networkPresence"};
opensocial.Person.prototype.getId=function(){return this.getField(opensocial.Person.Field.ID)
};
var ORDERED_NAME_FIELDS_=[opensocial.Name.Field.HONORIFIC_PREFIX,opensocial.Name.Field.GIVEN_NAME,opensocial.Name.Field.FAMILY_NAME,opensocial.Name.Field.HONORIFIC_SUFFIX,opensocial.Name.Field.ADDITIONAL_NAME];
opensocial.Person.prototype.getDisplayName=function(){var b=this.getField(opensocial.Person.Field.NAME);
if(b){var e=b.getField(opensocial.Name.Field.UNSTRUCTURED);
if(e){return e
}var d="";
for(var c=0;
c<ORDERED_NAME_FIELDS_.length;
c++){var a=b.getField(ORDERED_NAME_FIELDS_[c]);
if(a){d+=a+" "
}}return d.replace(/^\s+|\s+$/g,"")
}return this.getField(opensocial.Person.Field.NICKNAME)
};
opensocial.Person.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};
opensocial.Person.prototype.getAppData=function(a){};
opensocial.Person.prototype.isViewer=function(){return !!this.isViewer_
};
opensocial.Person.prototype.isOwner=function(){return !!this.isOwner_
};;
opensocial.Phone=function(a){this.fields_=a||{}
};
opensocial.Phone.Field={TYPE:"type",NUMBER:"number"};
opensocial.Phone.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};;
opensocial.ResponseItem=function(a,c,b,d){this.originalDataRequest_=a;
this.data_=c;
this.errorCode_=b;
this.errorMessage_=d
};
opensocial.ResponseItem.prototype.hadError=function(){return !!this.errorCode_
};
opensocial.ResponseItem.Error={NOT_IMPLEMENTED:"notImplemented",UNAUTHORIZED:"unauthorized",FORBIDDEN:"forbidden",BAD_REQUEST:"badRequest",INTERNAL_ERROR:"internalError",LIMIT_EXCEEDED:"limitExceeded"};
opensocial.ResponseItem.prototype.getErrorCode=function(){return this.errorCode_
};
opensocial.ResponseItem.prototype.getErrorMessage=function(){return this.errorMessage_
};
opensocial.ResponseItem.prototype.getOriginalDataRequest=function(){return this.originalDataRequest_
};
opensocial.ResponseItem.prototype.getData=function(){return this.data_
};;
opensocial.Url=function(a){this.fields_=a||{}
};
opensocial.Url.Field={TYPE:"type",LINK_TEXT:"linkText",ADDRESS:"address"};
opensocial.Url.prototype.getField=function(a,b){return opensocial.Container.getField(this.fields_,a,b)
};;
tamings___.push(function(a){caja___.whitelistCtors([[window,"JsonRpcRequestItem",Object],[opensocial,"Activity",Object],[opensocial,"Address",Object],[opensocial,"Album",Object],[opensocial,"BodyType",Object],[opensocial,"Container",Object],[opensocial,"Collection",Object],[opensocial,"DataRequest",Object],[opensocial,"DataResponse",Object],[opensocial,"Email",Object],[opensocial,"Enum",Object],[opensocial,"Environment",Object],[opensocial,"IdSpec",Object],[opensocial,"MediaItem",Object],[opensocial,"Message",Object],[opensocial,"MessageCollection",Object],[opensocial,"Name",Object],[opensocial,"NavigationParameters",Object],[opensocial,"Organization",Object],[opensocial,"Person",Object],[opensocial,"Phone",Object],[opensocial,"ResponseItem",Object],[opensocial,"Url",Object]]);
caja___.whitelistMeths([[JsonPerson,"getDisplayName"],[JsonPerson,"getAppData"],[opensocial.Activity,"getField"],[opensocial.Activity,"getId"],[opensocial.Activity,"setField"],[opensocial.Address,"getField"],[opensocial.Album,"getField"],[opensocial.Album,"setField"],[opensocial.BodyType,"getField"],[opensocial.Container,"getEnvironment"],[opensocial.Container,"requestSendMessage"],[opensocial.Container,"requestShareApp"],[opensocial.Container,"requestCreateActivity"],[opensocial.Container,"hasPermission"],[opensocial.Container,"requestPermission"],[opensocial.Container,"requestData"],[opensocial.Container,"newCreateAlbumRequest"],[opensocial.Container,"newCreateMediaItemRequest"],[opensocial.Container,"newDeleteAlbumRequest"],[opensocial.Container,"newFetchPersonRequest"],[opensocial.Container,"newFetchPeopleRequest"],[opensocial.Container,"newFetchPersonAppDataRequest"],[opensocial.Container,"newUpdatePersonAppDataRequest"],[opensocial.Container,"newRemovePersonAppDataRequest"],[opensocial.Container,"newUpdateAlbumRequest"],[opensocial.Container,"newUpdateMediaItemRequest"],[opensocial.Container,"newFetchActivitiesRequest"],[opensocial.Container,"newFetchAlbumsRequest"],[opensocial.Container,"newFetchMediaItemsRequest"],[opensocial.Container,"newFetchMessageCollectionsRequest"],[opensocial.Container,"newFetchMessagesRequest"],[opensocial.Container,"newCollection"],[opensocial.Container,"newPerson"],[opensocial.Container,"newActivity"],[opensocial.Container,"newAlbum"],[opensocial.Container,"newMediaItem"],[opensocial.Container,"newMessage"],[opensocial.Container,"newIdSpec"],[opensocial.Container,"newNavigationParameters"],[opensocial.Container,"newResponseItem"],[opensocial.Container,"newDataResponse"],[opensocial.Container,"newDataRequest"],[opensocial.Container,"newEnvironment"],[opensocial.Container,"invalidateCache"],[opensocial.Collection,"asArray"],[opensocial.Collection,"each"],[opensocial.Collection,"getById"],[opensocial.Collection,"getOffset"],[opensocial.Collection,"getTotalSize"],[opensocial.Collection,"size"],[opensocial.DataRequest,"add"],[opensocial.DataRequest,"newCreateAlbumRequest"],[opensocial.DataRequest,"newCreateMediaItemRequest"],[opensocial.DataRequest,"newDeleteAlbumRequest"],[opensocial.DataRequest,"newFetchActivitiesRequest"],[opensocial.DataRequest,"newFetchAlbumsRequest"],[opensocial.DataRequest,"newFetchMediaItemsRequest"],[opensocial.DataRequest,"newFetchPeopleRequest"],[opensocial.DataRequest,"newFetchPersonAppDataRequest"],[opensocial.DataRequest,"newUpdateAlbumRequest"],[opensocial.DataRequest,"newUpdateMediaItemRequest"],[opensocial.DataRequest,"newFetchPersonRequest"],[opensocial.DataRequest,"newRemovePersonAppDataRequest"],[opensocial.DataRequest,"newUpdatePersonAppDataRequest"],[opensocial.DataRequest,"send"],[opensocial.DataResponse,"get"],[opensocial.DataResponse,"getErrorMessage"],[opensocial.DataResponse,"hadError"],[opensocial.Email,"getField"],[opensocial.Enum,"getDisplayValue"],[opensocial.Enum,"getKey"],[opensocial.Environment,"getDomain"],[opensocial.Environment,"supportsField"],[opensocial.IdSpec,"getField"],[opensocial.IdSpec,"setField"],[opensocial.MediaItem,"getField"],[opensocial.MediaItem,"setField"],[opensocial.Message,"getField"],[opensocial.Message,"setField"],[opensocial.Name,"getField"],[opensocial.NavigationParameters,"getField"],[opensocial.NavigationParameters,"setField"],[opensocial.Organization,"getField"],[opensocial.Person,"getDisplayName"],[opensocial.Person,"getField"],[opensocial.Person,"getId"],[opensocial.Person,"isOwner"],[opensocial.Person,"isViewer"],[opensocial.Phone,"getField"],[opensocial.ResponseItem,"getData"],[opensocial.ResponseItem,"getErrorCode"],[opensocial.ResponseItem,"getErrorMessage"],[opensocial.ResponseItem,"getOriginalDataRequest"],[opensocial.ResponseItem,"hadError"],[opensocial.Url,"getField"]]);
caja___.whitelistFuncs([[opensocial.Container,"setContainer"],[opensocial.Container,"get"],[opensocial.Container,"getField"],[opensocial,"getEnvironment"],[opensocial,"hasPermission"],[opensocial,"newActivity"],[opensocial,"newAlbum"],[opensocial,"newDataRequest"],[opensocial,"newIdSpec"],[opensocial,"newMediaItem"],[opensocial,"newMessage"],[opensocial,"newNavigationParameters"],[opensocial,"requestCreateActivity"],[opensocial,"requestPermission"],[opensocial,"requestSendMessage"],[opensocial,"requestShareApp"]]);
caja___.whitelistProps([[opensocial,"CreateActivityPriority"],[opensocial,"EscapeType"],[opensocial.Activity,"Field"],[opensocial.Address,"Field"],[opensocial.Album,"Field"],[opensocial.BodyType,"Field"],[opensocial.DataRequest,"ActivityRequestFields"],[opensocial.DataRequest,"DataRequestFields"],[opensocial.DataRequest,"FilterType"],[opensocial.DataRequest,"Group"],[opensocial.DataRequest,"PeopleRequestFields"],[opensocial.DataRequest,"SortOrder"],[opensocial.Email,"Field"],[opensocial.Enum,"Smoker"],[opensocial.Enum,"Drinker"],[opensocial.Enum,"Gender"],[opensocial.Enum,"LookingFor"],[opensocial.Enum,"Presence"],[opensocial.Environment,"ObjectType"],[opensocial.IdSpec,"Field"],[opensocial.IdSpec,"GroupId"],[opensocial.IdSpec,"PersonId"],[opensocial.MediaItem,"Field"],[opensocial.MediaItem,"Type"],[opensocial.Message,"Field"],[opensocial.Message,"Type"],[opensocial.MessageCollection,"Field"],[opensocial.Name,"Field"],[opensocial.NavigationParameters,"DestinationType"],[opensocial.NavigationParameters,"Field"],[opensocial.Organization,"Field"],[opensocial.Person,"Field"],[opensocial.Phone,"Field"],[opensocial.ResponseItem,"Error"],[opensocial.Url,"Field"]]);
caja___.whitelistProps([[JsonRpcRequestItem,"rpc"],[JsonRpcRequestItem,"processData"],[JsonRpcRequestItem,"processResponse"],[JsonRpcRequestItem,"errors"]])
});;
gadgets.rpc.register("update_security_token",function(a){shindig.auth.updateSecurityToken(a)
});;
(function(){var i=null;
var j={};
var f=gadgets.util.escapeString;
var d={};
var h={};
var e="en";
var b="US";
var a=0;
function c(){var l=gadgets.util.getUrlParameters();
for(var k in l){if(l.hasOwnProperty(k)){if(k.indexOf("up_")===0&&k.length>3){j[k.substr(3)]=String(l[k])
}else{if(k==="country"){b=l[k]
}else{if(k==="lang"){e=l[k]
}else{if(k==="mid"){a=l[k]
}}}}}}}function g(){for(var k in h){if(typeof j[k]==="undefined"){j[k]=h[k]
}}}gadgets.Prefs=function(){if(!i){c();
g();
i=this
}return i
};
gadgets.Prefs.setInternal_=function(n,p){var o=false;
if(typeof n==="string"){if(!j.hasOwnProperty(n)||j[n]!==p){o=true
}j[n]=p
}else{for(var m in n){if(n.hasOwnProperty(m)){var l=n[m];
if(!j.hasOwnProperty(m)||j[m]!==l){o=true
}j[m]=l
}}}return o
};
gadgets.Prefs.setMessages_=function(k){d=k
};
gadgets.Prefs.setDefaultPrefs_=function(k){h=k
};
gadgets.Prefs.prototype.getString=function(k){if(k===".lang"){k="lang"
}return j[k]?f(j[k]):""
};
gadgets.Prefs.prototype.setDontEscape_=function(){f=function(l){return l
}
};
gadgets.Prefs.prototype.getInt=function(k){var l=parseInt(j[k],10);
return isNaN(l)?0:l
};
gadgets.Prefs.prototype.getFloat=function(k){var l=parseFloat(j[k]);
return isNaN(l)?0:l
};
gadgets.Prefs.prototype.getBool=function(k){var l=j[k];
if(l){return l==="true"||l===true||!!parseInt(l,10)
}return false
};
gadgets.Prefs.prototype.set=function(k,l){throw new Error("setprefs feature required to make this call.")
};
gadgets.Prefs.prototype.getArray=function(n){var o=j[n];
if(o){var k=o.split("|");
for(var m=0,l=k.length;
m<l;
++m){k[m]=f(k[m].replace(/%7C/g,"|"))
}return k
}return[]
};
gadgets.Prefs.prototype.setArray=function(k,l){throw new Error("setprefs feature required to make this call.")
};
gadgets.Prefs.prototype.getMsg=function(k){return d[k]||""
};
gadgets.Prefs.prototype.getCountry=function(){return b
};
gadgets.Prefs.prototype.getLang=function(){return e
};
gadgets.Prefs.prototype.getModuleId=function(){return a
}
})();;
tamings___.push(function(a){caja___.whitelistCtors([[gadgets,"Prefs",Object]]);
caja___.whitelistMeths([[gadgets.Prefs,"getArray"],[gadgets.Prefs,"getBool"],[gadgets.Prefs,"getCountry"],[gadgets.Prefs,"getFloat"],[gadgets.Prefs,"getInt"],[gadgets.Prefs,"getLang"],[gadgets.Prefs,"getMsg"],[gadgets.Prefs,"getString"],[gadgets.Prefs,"set"],[gadgets.Prefs,"setArray"]])
});;
gadgets.io=function(){var config={};
var oauthState;
function makeXhr(){var x;
var wrapperXhr=window.shindig&&window.shindig["xhrwrapper"]&&window.shindig["xhrwrapper"]["createXHR"];
if(wrapperXhr){return wrapperXhr()
}else{if(typeof ActiveXObject!="undefined"){x=new ActiveXObject("Msxml2.XMLHTTP");
if(!x){x=new ActiveXObject("Microsoft.XMLHTTP")
}return x
}else{if(typeof XMLHttpRequest!="undefined"||window.XMLHttpRequest){return new window.XMLHttpRequest()
}else{throw ("no xhr available")
}}}}function hadError(xobj,callback){if(xobj.readyState!==4){return true
}try{if(xobj.status!==200){var error=(""+xobj.status);
if(xobj.responseText){error=error+" "+xobj.responseText
}callback({errors:[error],rc:xobj.status,text:xobj.responseText});
return true
}}catch(e){callback({errors:[e.number+" Error not specified"],rc:e.number,text:e.description});
return true
}return false
}function processNonProxiedResponse(url,callback,params,xobj){if(hadError(xobj,callback)){return
}var data={body:xobj.responseText};
callback(transformResponseData(params,data))
}var UNPARSEABLE_CRUFT="throw 1; < don't be evil' >";
function processResponse(url,callback,params,xobj){if(hadError(xobj,callback)){return
}var txt=xobj.responseText;
var offset=txt.indexOf(UNPARSEABLE_CRUFT)+UNPARSEABLE_CRUFT.length;
if(offset<UNPARSEABLE_CRUFT.length){return
}txt=txt.substr(offset);
var data=eval("("+txt+")");
data=data[url];
if(data.oauthState){oauthState=data.oauthState
}if(data.st){shindig.auth.updateSecurityToken(data.st)
}callback(transformResponseData(params,data))
}function transformResponseData(params,data){var resp={text:data.body,rc:data.rc||200,headers:data.headers,oauthApprovalUrl:data.oauthApprovalUrl,oauthError:data.oauthError,oauthErrorText:data.oauthErrorText,errors:[]};
if(resp.rc<200||resp.rc>=400){resp.errors=[resp.rc+" Error"]
}else{if(resp.text){if(resp.rc>=300&&resp.rc<400){params.CONTENT_TYPE="TEXT"
}switch(params.CONTENT_TYPE){case"JSON":case"FEED":resp.data=gadgets.json.parse(resp.text);
if(!resp.data){resp.errors.push("500 Failed to parse JSON");
resp.rc=500;
resp.data=null
}break;
case"DOM":var dom;
if(typeof ActiveXObject!="undefined"){dom=new ActiveXObject("Microsoft.XMLDOM");
dom.async=false;
dom.validateOnParse=false;
dom.resolveExternals=false;
if(!dom.loadXML(resp.text)){resp.errors.push("500 Failed to parse XML");
resp.rc=500
}else{resp.data=dom
}}else{var parser=new DOMParser();
dom=parser.parseFromString(resp.text,"text/xml");
if("parsererror"===dom.documentElement.nodeName){resp.errors.push("500 Failed to parse XML");
resp.rc=500
}else{resp.data=dom
}}break;
default:resp.data=resp.text;
break
}}}return resp
}function makeXhrRequest(realUrl,proxyUrl,callback,paramData,method,params,processResponseFunction,opt_headers){var xhr=makeXhr();
if(proxyUrl.indexOf("//")==0){proxyUrl=document.location.protocol+proxyUrl
}xhr.open(method,proxyUrl,true);
if(callback){xhr.onreadystatechange=gadgets.util.makeClosure(null,processResponseFunction,realUrl,callback,params,xhr)
}if(paramData!==null){var contentTypeHeader="Content-Type";
var contentType="application/x-www-form-urlencoded";
if(typeof opt_headers==="string"){contentType=opt_headers;
opt_headers={}
}var headers=opt_headers||{};
if(!headers[contentTypeHeader]){headers[contentTypeHeader]=contentType
}for(var headerName in headers){xhr.setRequestHeader(headerName,headers[headerName])
}}xhr.send(paramData)
}function respondWithPreload(postData,params,callback){if(gadgets.io.preloaded_&&postData.httpMethod==="GET"){for(var i=0;
i<gadgets.io.preloaded_.length;
i++){var preload=gadgets.io.preloaded_[i];
if(preload&&(preload.id===postData.url)){delete gadgets.io.preloaded_[i];
if(preload.rc!==200){callback({rc:preload.rc,errors:[preload.rc+" Error"]})
}else{if(preload.oauthState){oauthState=preload.oauthState
}var resp={body:preload.body,rc:preload.rc,headers:preload.headers,oauthApprovalUrl:preload.oauthApprovalUrl,oauthError:preload.oauthError,oauthErrorText:preload.oauthErrorText,errors:[]};
callback(transformResponseData(params,resp))
}return true
}}}return false
}function init(configuration){config=configuration["core.io"]||{}
}gadgets.config.register("core.io",null,init);
return{makeRequest:function(url,callback,opt_params){var params=opt_params||{};
var httpMethod=params.METHOD||"GET";
var refreshInterval=params.REFRESH_INTERVAL;
var auth,st;
if(params.AUTHORIZATION&&params.AUTHORIZATION!=="NONE"){auth=params.AUTHORIZATION.toLowerCase();
st=shindig.auth.getSecurityToken()
}else{if(httpMethod==="GET"&&refreshInterval===undefined){refreshInterval=3600
}}var signOwner=true;
if(typeof params.OWNER_SIGNED!=="undefined"){signOwner=params.OWNER_SIGNED
}var signViewer=true;
if(typeof params.VIEWER_SIGNED!=="undefined"){signViewer=params.VIEWER_SIGNED
}var headers=params.HEADERS||{};
if(httpMethod==="POST"&&!headers["Content-Type"]){headers["Content-Type"]="application/x-www-form-urlencoded"
}var urlParams=gadgets.util.getUrlParameters();
var paramData={url:url,httpMethod:httpMethod,headers:gadgets.io.encodeValues(headers,false),postData:params.POST_DATA||"",authz:auth||"",st:st||"",contentType:params.CONTENT_TYPE||"TEXT",numEntries:params.NUM_ENTRIES||"3",getSummaries:!!params.GET_SUMMARIES,signOwner:signOwner,signViewer:signViewer,gadget:urlParams.url,container:urlParams.container||urlParams.synd||"default",bypassSpecCache:gadgets.util.getUrlParameters()["nocache"]||"",getFullHeaders:!!params.GET_FULL_HEADERS};
if(auth==="oauth"||auth==="signed"){if(gadgets.io.oauthReceivedCallbackUrl_){paramData.OAUTH_RECEIVED_CALLBACK=gadgets.io.oauthReceivedCallbackUrl_;
gadgets.io.oauthReceivedCallbackUrl_=null
}paramData.oauthState=oauthState||"";
for(var opt in params){if(params.hasOwnProperty(opt)){if(opt.indexOf("OAUTH_")===0){paramData[opt]=params[opt]
}}}}var proxyUrl=config.jsonProxyUrl.replace("%host%",document.location.host);
if(!respondWithPreload(paramData,params,callback)){if(httpMethod==="GET"&&refreshInterval>0){var extraparams="?refresh="+refreshInterval+"&"+gadgets.io.encodeValues(paramData);
makeXhrRequest(url,proxyUrl+extraparams,callback,null,"GET",params,processResponse)
}else{makeXhrRequest(url,proxyUrl,callback,gadgets.io.encodeValues(paramData),"POST",params,processResponse)
}}},makeNonProxiedRequest:function(relativeUrl,callback,opt_params,opt_headers){var params=opt_params||{};
makeXhrRequest(relativeUrl,relativeUrl,callback,params.POST_DATA,params.METHOD,params,processNonProxiedResponse,opt_headers)
},clearOAuthState:function(){oauthState=undefined
},encodeValues:function(fields,opt_noEscaping){var escape=!opt_noEscaping;
var buf=[];
var first=false;
for(var i in fields){if(fields.hasOwnProperty(i)&&!/___$/.test(i)){if(!first){first=true
}else{buf.push("&")
}buf.push(escape?encodeURIComponent(String(i)):i);
buf.push("=");
buf.push(escape?encodeURIComponent(String(fields[i])):fields[i])
}}return buf.join("")
},getProxyUrl:function(url,opt_params){var params=opt_params||{};
var refresh=params.REFRESH_INTERVAL;
if(refresh===undefined){refresh="3600"
}var urlParams=gadgets.util.getUrlParameters();
var rewriteMimeParam=params.rewriteMime?"&rewriteMime="+encodeURIComponent(String(params.rewriteMime)):"";
var ret=config.proxyUrl.replace("%url%",encodeURIComponent(url)).replace("%host%",document.location.host).replace("%rawurl%",url).replace("%refresh%",encodeURIComponent(String(refresh))).replace("%gadget%",encodeURIComponent(urlParams.url)).replace("%container%",encodeURIComponent(urlParams.container||urlParams.synd||"default")).replace("%rewriteMime%",rewriteMimeParam);
if(ret.indexOf("//")==0){ret=window.location.protocol+ret
}return ret
}}
}();
gadgets.io.RequestParameters=gadgets.util.makeEnum(["METHOD","CONTENT_TYPE","POST_DATA","HEADERS","AUTHORIZATION","NUM_ENTRIES","GET_SUMMARIES","GET_FULL_HEADERS","REFRESH_INTERVAL","OAUTH_SERVICE_NAME","OAUTH_USE_TOKEN","OAUTH_TOKEN_NAME","OAUTH_REQUEST_TOKEN","OAUTH_REQUEST_TOKEN_SECRET","OAUTH_RECEIVED_CALLBACK"]);
gadgets.io.MethodType=gadgets.util.makeEnum(["GET","POST","PUT","DELETE","HEAD"]);
gadgets.io.ContentType=gadgets.util.makeEnum(["TEXT","DOM","JSON","FEED"]);
gadgets.io.AuthorizationType=gadgets.util.makeEnum(["NONE","SIGNED","OAUTH"]);;
tamings___.push(function(a){caja___.whitelistFuncs([[gadgets.io,"encodeValues"],[gadgets.io,"getProxyUrl"],[gadgets.io,"makeRequest"]])
});;
window.FieldTranslations=(function(){function b(c){if(c){c.key=c.value
}}function a(c){if(c){c.address=c.value
}}return{translateEnumJson:b,translateUrlJson:a,translateServerPersonToJsPerson:function(l,d){if(l.emails){for(var g=0;
g<l.emails.length;
g++){l.emails[g].address=l.emails[g].value
}}if(l.phoneNumbers){for(var c=0;
c<l.phoneNumbers.length;
c++){l.phoneNumbers[c].number=l.phoneNumbers[c].value
}}if(l.birthday){l.dateOfBirth=l.birthday
}if(l.utcOffset){l.timeZone=l.utcOffset
}if(l.addresses){for(var f=0;
f<l.addresses.length;
f++){l.addresses[f].unstructuredAddress=l.addresses[f].formatted
}}if(l.gender){var h=l.gender=="male"?"MALE":(l.gender=="female")?"FEMALE":null;
l.gender={key:h,displayValue:l.gender}
}a(l.profileSong);
a(l.profileVideo);
if(l.urls){for(var k=0;
k<l.urls.length;
k++){a(l.urls[k])
}}b(l.drinker);
b(l.lookingFor);
b(l.networkPresence);
b(l.smoker);
if(l.organizations){l.jobs=[];
l.schools=[];
for(var e=0;
e<l.organizations.length;
e++){var m=l.organizations[e];
if(m.type=="job"){l.jobs.push(m)
}else{if(m.type=="school"){l.schools.push(m)
}}}}if(l.name){l.name.unstructured=l.name.formatted
}if(l.appData){l.appData=opensocial.Container.escape(l.appData,d,true)
}},translateJsPersonFieldsToServerFields:function(c){for(var d=0;
d<c.length;
d++){if(c[d]=="dateOfBirth"){c[d]="birthday"
}else{if(c[d]=="timeZone"){c[d]="utcOffset"
}else{if(c[d]=="jobs"){c[d]="organizations"
}else{if(c[d]=="schools"){c[d]="organizations"
}}}}}c.push("id");
c.push("displayName")
},translateIsoStringToDate:function(c){var f="([0-9]{4})(-([0-9]{2})(-([0-9]{2})(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(.([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
var i=c.match(new RegExp(f));
var h=0;
var e=new Date(i[1],0,1);
if(i[3]){e.setMonth(i[3]-1)
}if(i[5]){e.setDate(i[5])
}if(i[7]){e.setHours(i[7])
}if(i[8]){e.setMinutes(i[8])
}if(i[10]){e.setSeconds(i[10])
}if(i[12]){e.setMilliseconds(Number("0."+i[12])*1000)
}if(i[14]){h=(Number(i[16])*60)+Number(i[17]);
h*=((i[15]=="-")?1:-1)
}h-=e.getTimezoneOffset();
var g=(Number(e)+(h*60*1000));
return new Date(Number(g))
},addAppDataAsProfileFields:function(f){if(f){if(f.appData){var c=f.appData;
if(typeof c==="string"){c=[c]
}var e=f.profileDetail||[];
for(var d=0;
d<c.length;
d++){if(c[d]==="*"){e.push("appData")
}else{e.push("appData."+c[d])
}}f.appData=c
}}},translateStandardArguments:function(d,c){if(d.first){c.startIndex=d.first
}if(d.max){c.count=d.max
}if(d.sortOrder){c.sortBy=d.sortOrder
}if(d.filter){c.filterBy=d.filter
}if(d.filterOp){c.filterOp=d.filterOp
}if(d.filterValue){c.filterValue=d.filterValue
}if(d.fields){c.fields=d.fields
}},translateNetworkDistance:function(c,d){if(c.getField("networkDistance")){d.networkDistance=c.getField("networkDistance")
}}}
})();;
var JsonMediaItem=function(a){a=a||{};
opensocial.MediaItem.call(this,a.mimeType,a.url,a)
};
JsonMediaItem.inherits(opensocial.MediaItem);
JsonMediaItem.prototype.toJsonObject=function(){return JsonMediaItem.copyFields(this.fields_)
};
JsonMediaItem.copyFields=function(a){var b={};
for(var c in a){b[c]=a[c]
}return b
};;
var JsonAlbum=function(a){a=a||{};
JsonAlbum.constructObject(a,"location",opensocial.Address);
opensocial.Album.call(this,a)
};
JsonAlbum.inherits(opensocial.Album);
JsonAlbum.prototype.toJsonObject=function(){return JsonAlbum.copyFields(this.fields_)
};
JsonAlbum.constructObject=function(c,d,a){var b=c[d];
if(b){c[d]=new a(b)
}};
JsonAlbum.copyFields=function(a){var b={};
for(var c in a){b[c]=a[c]
}return b
};;
var JsonActivity=function(a,b){a=a||{};
if(!b){JsonActivity.constructArrayObject(a,"mediaItems",JsonMediaItem)
}opensocial.Activity.call(this,a)
};
JsonActivity.inherits(opensocial.Activity);
JsonActivity.prototype.toJsonObject=function(){var c=JsonActivity.copyFields(this.fields_);
var d=c.mediaItems||[];
var a=[];
for(var b=0;
b<d.length;
b++){a[b]=d[b].toJsonObject()
}c.mediaItems=a;
return c
};
JsonActivity.constructArrayObject=function(d,e,b){var c=d[e];
if(c){for(var a=0;
a<c.length;
a++){c[a]=new b(c[a])
}}};
JsonActivity.copyFields=function(a){var b={};
for(var c in a){b[c]=a[c]
}return b
};;
var JsonPerson=function(a){a=a||{};
JsonPerson.constructObject(a,"bodyType",opensocial.BodyType);
JsonPerson.constructObject(a,"currentLocation",opensocial.Address);
JsonPerson.constructObject(a,"name",opensocial.Name);
JsonPerson.constructObject(a,"profileSong",opensocial.Url);
JsonPerson.constructObject(a,"profileVideo",opensocial.Url);
JsonPerson.constructDate(a,"dateOfBirth");
JsonPerson.constructArrayObject(a,"addresses",opensocial.Address);
JsonPerson.constructArrayObject(a,"emails",opensocial.Email);
JsonPerson.constructArrayObject(a,"jobs",opensocial.Organization);
JsonPerson.constructArrayObject(a,"phoneNumbers",opensocial.Phone);
JsonPerson.constructArrayObject(a,"schools",opensocial.Organization);
JsonPerson.constructArrayObject(a,"urls",opensocial.Url);
JsonPerson.constructEnum(a,"gender");
JsonPerson.constructEnum(a,"smoker");
JsonPerson.constructEnum(a,"drinker");
JsonPerson.constructEnum(a,"networkPresence");
JsonPerson.constructEnumArray(a,"lookingFor");
opensocial.Person.call(this,a,a.isOwner,a.isViewer)
};
JsonPerson.inherits(opensocial.Person);
JsonPerson.constructEnum=function(b,c){var a=b[c];
if(a){b[c]=new opensocial.Enum(a.key,a.displayValue)
}};
JsonPerson.constructEnumArray=function(c,d){var b=c[d];
if(b){for(var a=0;
a<b.length;
a++){b[a]=new opensocial.Enum(b[a].key,b[a].displayValue)
}}};
JsonPerson.constructObject=function(c,d,a){var b=c[d];
if(b){c[d]=new a(b)
}};
JsonPerson.constructDate=function(b,c){var a=b[c];
if(a){b[c]=FieldTranslations.translateIsoStringToDate(a)
}};
JsonPerson.constructArrayObject=function(d,e,b){var c=d[e];
if(c){for(var a=0;
a<c.length;
a++){c[a]=new b(c[a])
}}};
JsonPerson.prototype.getDisplayName=function(){return this.getField("displayName")
};
JsonPerson.prototype.getAppData=function(b){var a=this.getField("appData");
return a&&a[b]
};;
var JsonMessageCollection=function(a){a=a||{};
opensocial.MessageCollection.call(this,a)
};
JsonMessageCollection.inherits(opensocial.MessageCollection);
JsonMessageCollection.prototype.toJsonObject=function(){return JsonMessageCollection.copyFields(this.fields_)
};
JsonMessageCollection.copyFields=function(a){var b={};
for(var c in a){b[c]=a[c]
}return b
};;
var JsonMessage=function(a,b){b=b||{};
opensocial.Message.call(this,a,b)
};
JsonMessage.inherits(opensocial.Message);
JsonMessage.prototype.toJsonObject=function(){return JsonMessage.copyFields(this.fields_)
};
JsonMessage.copyFields=function(a){var b={};
for(var c in a){b[c]=a[c]
}return b
};;
tamings___.push(function(a){caja___.whitelistCtors([[window,"JsonActivity",opensocial.Activity],[window,"JsonAlbum",opensocial.Album],[window,"JsonMediaItem",opensocial.MediaItem],[window,"JsonMessage",opensocial.Message],[window,"JsonMessageCollection",opensocial.MessageCollection],[window,"JsonPerson",opensocial.Person]]);
caja___.whitelistMeths([[JsonPerson,"getDisplayName"],[JsonPerson,"getAppData"]])
});;
var JsonRpcContainer=function(c){opensocial.Container.call(this);
var h=c.path;
this.path_=h.replace("%host%",document.location.host);
var f=c.invalidatePath;
this.invalidatePath_=f.replace("%host%",document.location.host);
var g=c.supportedFields;
var e={};
for(var b in g){if(g.hasOwnProperty(b)){e[b]={};
for(var d=0;
d<g[b].length;
d++){var a=g[b][d];
e[b][a]=true
}}}this.environment_=new opensocial.Environment(c.domain,e);
this.useOAuth2=c.useOAuth2;
this.securityToken_=shindig.auth.getSecurityToken();
gadgets.rpc.register("shindig.requestShareApp_callback",JsonRpcContainer.requestShareAppCallback_)
};
var JsonRpcRequestItem=function(b,a){this.rpc=b;
this.processData=a||function(c){return c
};
this.processResponse=function(c,f,e,d){var g=e?JsonRpcContainer.translateHttpError(e.code):null;
return new opensocial.ResponseItem(c,e?null:this.processData(f),g,d)
}
};
(function(){var a={};
JsonRpcContainer.inherits(opensocial.Container);
JsonRpcContainer.prototype.getEnvironment=function(){return this.environment_
};
JsonRpcContainer.prototype.requestShareApp=function(f,h,c,d){var e="cId_"+Math.random();
a[e]=c;
var b=gadgets.util.unescapeString(h.getField(opensocial.Message.Field.BODY));
if(!b||b.length===0){var g=gadgets.util.unescapeString(h.getField(opensocial.Message.Field.BODY_ID));
b=gadgets.Prefs.getMsg(g)
}gadgets.rpc.call("..","shindig.requestShareApp",null,e,f,b)
};
JsonRpcContainer.requestShareAppCallback_=function(f,g,c,e){callback=a[f];
if(callback){a[f]=null;
var d=null;
if(e){d={recipientIds:e}
}var b=new opensocial.ResponseItem(null,d,c);
callback(b)
}};
JsonRpcContainer.prototype.requestCreateActivity=function(e,c,b){b=b||function(){};
var d=opensocial.newDataRequest();
var f=opensocial.newIdSpec({userId:"VIEWER"});
d.add(this.newCreateActivityRequest(f,e),"key");
d.send(function(g){b(g.get("key"))
})
};
JsonRpcContainer.prototype.requestData=function(h,m){m=m||function(){};
var f=h.getRequestObjects();
var k=f.length;
if(k===0){window.setTimeout(function(){m(new opensocial.DataResponse({},true))
},0);
return
}var n=new Array(k);
for(var g=0;
g<k;
g++){var l=f[g];
n[g]=l.request.rpc;
if(l.key){n[g].id=l.key
}}var c=function(y){if(y.errors[0]){JsonRpcContainer.generateErrorResponse(y,f,m);
return
}y=y.result||y.data;
var o=false;
var x={};
for(var s=0;
s<y.length;
s++){y[y[s].id]=y[s]
}for(var p=0;
p<f.length;
p++){var r=f[p];
var q=y[p];
if(r.key&&q.id!==r.key){throw"Request key("+r.key+") and response id("+q.id+") do not match"
}var j=q.result||q.data;
var v=q.error;
var u="";
if(v){u=v.message
}var t=r.request.processResponse(r.request,j,v,u);
o=o||t.hadError();
if(r.key){x[r.key]=t
}}var w=new opensocial.DataResponse(x,o);
m(w)
};
var i={CONTENT_TYPE:"JSON",METHOD:"POST",AUTHORIZATION:"SIGNED",POST_DATA:gadgets.json.stringify(n)};
var d={"Content-Type":"application/json"};
var b=[this.path_];
var e=shindig.auth.getSecurityToken();
if(e){if(this.useOAuth2){d.Authorization="OAuth2 "+e
}else{b.push("?st=",encodeURIComponent(e))
}}this.sendRequest(b.join(""),c,i,d)
};
JsonRpcContainer.prototype.sendRequest=function(b,e,d,c){gadgets.io.makeNonProxiedRequest(b,e,d,c)
};
JsonRpcContainer.generateErrorResponse=function(b,e,g){var c=JsonRpcContainer.translateHttpError(b.rc||b.result.error||b.data.error)||opensocial.ResponseItem.Error.INTERNAL_ERROR;
var f={};
for(var d=0;
d<e.length;
d++){f[e[d].key]=new opensocial.ResponseItem(e[d].request,null,c)
}g(new opensocial.DataResponse(f,true))
};
JsonRpcContainer.translateHttpError=function(b){if(b==501){return opensocial.ResponseItem.Error.NOT_IMPLEMENTED
}else{if(b==401){return opensocial.ResponseItem.Error.UNAUTHORIZED
}else{if(b==403){return opensocial.ResponseItem.Error.FORBIDDEN
}else{if(b==400){return opensocial.ResponseItem.Error.BAD_REQUEST
}else{if(b==500){return opensocial.ResponseItem.Error.INTERNAL_ERROR
}else{if(b==404){return opensocial.ResponseItem.Error.BAD_REQUEST
}else{if(b==417){return opensocial.ResponseItem.Error.LIMIT_EXCEEDED
}}}}}}}};
JsonRpcContainer.prototype.makeIdSpec=function(b){return opensocial.newIdSpec({userId:b})
};
JsonRpcContainer.prototype.translateIdSpec=function(b){var e=b.getField("userId");
var d=b.getField("groupId");
if(!opensocial.Container.isArray(e)){e=[e]
}for(var c=0;
c<e.length;
c++){if(e[c]==="OWNER"){e[c]="@owner"
}else{if(e[c]==="VIEWER"){e[c]="@viewer"
}}}if(d==="FRIENDS"){d="@friends"
}else{if(d=="ALL"){d="@all"
}else{if(d==="SELF"||!d){d="@self"
}}}return{userId:e,groupId:d}
};
JsonRpcContainer.prototype.newFetchPersonRequest=function(e,d){var b=this.newFetchPeopleRequest(this.makeIdSpec(e),d);
var c=this;
return new JsonRpcRequestItem(b.rpc,function(f){return c.createPersonFromJson(f,d)
})
};
JsonRpcContainer.prototype.newFetchPeopleRequest=function(b,d){var e={method:"people.get"};
e.params=this.translateIdSpec(b);
FieldTranslations.addAppDataAsProfileFields(d);
FieldTranslations.translateStandardArguments(d,e.params);
FieldTranslations.translateNetworkDistance(b,e.params);
if(d.profileDetail){FieldTranslations.translateJsPersonFieldsToServerFields(d.profileDetail);
e.params.fields=d.profileDetail
}var c=this;
return new JsonRpcRequestItem(e,function(j){var h;
if(j.list){h=j.list
}else{h=[j]
}var g=[];
for(var f=0;
f<h.length;
f++){g.push(c.createPersonFromJson(h[f],d))
}return new opensocial.Collection(g,j.startIndex,j.totalResults)
})
};
JsonRpcContainer.prototype.createPersonFromJson=function(b,c){FieldTranslations.translateServerPersonToJsPerson(b,c);
return new JsonPerson(b)
};
JsonRpcContainer.prototype.getFieldsList=function(b){if(this.hasNoKeys(b)||this.isWildcardKey(b[0])){return[]
}else{return b
}};
JsonRpcContainer.prototype.hasNoKeys=function(b){return !b||b.length===0
};
JsonRpcContainer.prototype.isWildcardKey=function(b){return b==="*"
};
JsonRpcContainer.prototype.newFetchPersonAppDataRequest=function(b,d,c){var e={method:"appdata.get"};
e.params=this.translateIdSpec(b);
e.params.appId="@app";
e.params.fields=this.getFieldsList(d);
FieldTranslations.translateNetworkDistance(b,e.params);
return new JsonRpcRequestItem(e,function(f){return opensocial.Container.escape(f,c,true)
})
};
JsonRpcContainer.prototype.newUpdatePersonAppDataRequest=function(b,c){var d={method:"appdata.update"};
d.params={userId:["@viewer"],groupId:"@self"};
d.params.appId="@app";
d.params.data={};
d.params.data[b]=c;
d.params.fields=b;
return new JsonRpcRequestItem(d)
};
JsonRpcContainer.prototype.newRemovePersonAppDataRequest=function(b){var c={method:"appdata.delete"};
c.params={userId:["@viewer"],groupId:"@self"};
c.params.appId="@app";
c.params.fields=this.getFieldsList(b);
return new JsonRpcRequestItem(c)
};
JsonRpcContainer.prototype.newFetchActivitiesRequest=function(b,c){var d={method:"activities.get"};
d.params=this.translateIdSpec(b);
d.params.appId="@app";
FieldTranslations.translateStandardArguments(c,d.params);
FieldTranslations.translateNetworkDistance(b,d.params);
return new JsonRpcRequestItem(d,function(f){f=f.list;
var g=[];
for(var e=0;
e<f.length;
e++){g.push(new JsonActivity(f[e]))
}return new opensocial.Collection(g)
})
};
JsonRpcContainer.prototype.newActivity=function(b){return new JsonActivity(b,true)
};
JsonRpcContainer.prototype.newAlbum=function(b){return new JsonAlbum(b)
};
JsonRpcContainer.prototype.newMediaItem=function(d,b,c){c=c||{};
c.mimeType=d;
c.url=b;
return new JsonMediaItem(c)
};
JsonRpcContainer.prototype.newCreateActivityRequest=function(b,c){var d={method:"activities.create"};
d.params=this.translateIdSpec(b);
d.params.appId="@app";
FieldTranslations.translateNetworkDistance(b,d.params);
d.params.activity=c.toJsonObject();
return new JsonRpcRequestItem(d)
};
JsonRpcContainer.prototype.invalidateCache=function(){var g={method:"cache.invalidate"};
var c={invalidationKeys:["@viewer"]};
g.params=c;
var e={CONTENT_TYPE:"JSON",METHOD:"POST",AUTHORIZATION:"SIGNED",POST_DATA:gadgets.json.stringify(g)};
var f={"Content-Type":"application/json"};
var b=[this.invalidatePath_];
var d=shindig.auth.getSecurityToken();
if(d){if(this.useOAuth2){f.Authorization="OAuth2 "+d
}else{b.push("?st=",encodeURIComponent(d))
}}this.sendRequest(b.join(""),null,e,f)
}
})();
JsonRpcContainer.prototype.newMessage=function(a,b){return new JsonMessage(a,b)
};
JsonRpcContainer.prototype.newMessageCollection=function(a){return new JsonMessageCollection(a)
};
JsonRpcContainer.prototype.newFetchMessageCollectionsRequest=function(a,b){var c={method:"messages.get"};
c.params=this.translateIdSpec(a);
return new JsonRpcRequestItem(c,function(e){e=e.list;
var f=[];
for(var d=0;
d<e.length;
d++){f.push(new JsonMessageCollection(e[d]))
}return new opensocial.Collection(f)
})
};
JsonRpcContainer.prototype.newFetchMessagesRequest=function(a,c,b){var d={method:"messages.get"};
d.params=this.translateIdSpec(a);
d.params.msgCollId=c;
return new JsonRpcRequestItem(d,function(g){g=g.list;
var f=[];
for(var e=0;
e<g.length;
e++){f.push(new JsonMessage(g[e]))
}return new opensocial.Collection(f)
})
};
JsonRpcContainer.prototype.newCreateAlbumRequest=function(b,a){var c={method:"albums.create"};
c.params=this.translateIdSpec(b);
c.params.appId="@app";
c.params.album=a.toJsonObject();
return new JsonRpcRequestItem(c)
};
JsonRpcContainer.prototype.newDeleteAlbumRequest=function(a,b){var c={method:"albums.delete"};
c.params=this.translateIdSpec(a);
c.params.appId="@app";
c.params.albumId=b;
return new JsonRpcRequestItem(c)
};
JsonRpcContainer.prototype.newFetchAlbumsRequest=function(a,b){var c={method:"albums.get"};
c.params=this.translateIdSpec(a);
c.params.appId="@app";
return new JsonRpcRequestItem(c,function(f){f=f.list;
var d=[];
for(var e=0;
e<f.length;
e++){d.push(new JsonAlbum(f[e]))
}return new opensocial.Collection(d)
})
};
JsonRpcContainer.prototype.newCreateMediaItemRequest=function(a,c,b){var d={method:"mediaItems.create"};
d.params=this.translateIdSpec(a);
d.params.appId="@app";
d.params.albumId=c;
d.params.mediaItem=b.toJsonObject();
return new JsonRpcRequestItem(d)
};
JsonRpcContainer.prototype.newFetchMediaItemsRequest=function(a,b,c){var d={method:"mediaItems.get"};
d.params=this.translateIdSpec(a);
d.params.appId="@app";
d.params.albumId=b;
return new JsonRpcRequestItem(d,function(g){g=g.list;
var f=[];
for(var e=0;
e<g.length;
e++){f.push(new JsonMediaItem(g[e]))
}return new opensocial.Collection(f)
})
};;

      var requiredConfig = {
        "path": gadgets.config.NonEmptyStringValidator,
        "domain": gadgets.config.NonEmptyStringValidator,
        "supportedFields": gadgets.config.ExistsValidator,
        "invalidatePath": gadgets.config.ExistsValidator
      };

      gadgets.config.register("opensocial", requiredConfig,
        function(config) {
          var configParams = config["opensocial"];
          opensocial.Container.setContainer(new JsonRpcContainer(configParams));
          if (window['caja']) {
            opensocial.Container.get().enableCaja();
          }
      });
    ;
opensocial.DataRequest.prototype.newUpdatePersonAppDataRequest_09=opensocial.DataRequest.prototype.newUpdatePersonAppDataRequest;
opensocial.DataRequest.prototype.newUpdatePersonAppDataRequest=function(c,a,b){if(c!==opensocial.IdSpec.PersonId.VIEWER){throw Error("Cannot update app data for person "+c)
}return this.newUpdatePersonAppDataRequest_09(a,b)
};
opensocial.DataRequest.prototype.newRemovePersonAppDataRequest_09=opensocial.DataRequest.prototype.newRemovePersonAppDataRequest;
opensocial.DataRequest.prototype.newRemovePersonAppDataRequest=function(b,a){if(b!==opensocial.IdSpec.PersonId.VIEWER){throw Error("Cannot remove app data for person "+b)
}return this.newRemovePersonAppDataRequest_09(a)
};;
var opensocial=opensocial||{};
opensocial.data=opensocial.data||{};
opensocial.data.DataContext=function(){var e=[];
var b={};
var a=function(i,k,j){if(typeof k==="undefined"||k===null){return
}b[i]=k;
if(!(j===false)){c(i)
}};
var g=function(l,p,n,o){var j=!!n;
var m={keys:{},callback:p,oneTime:j};
if(typeof l==="string"){m.keys[l]=true;
if(l!="*"){l=[l]
}}else{for(var k=0;
k<l.length;
k++){m.keys[l[k]]=true
}}e.push(m);
if(o&&l!=="*"&&h(m.keys)){window.setTimeout(function(){f(m,l)
},1)
}};
var h=function(j){if(j["*"]){return true
}for(var i in j){if(typeof b[i]==="undefined"){return false
}}return true
};
var f=function(j,i){if(h(j.keys)){j.callback(i);
if(j.oneTime){d(j)
}}};
var d=function(k){for(var j=0;
j<e.length;
++j){if(e[j]==k){e.splice(j,1);
return
}}};
var c=function(n){if(typeof(n)=="string"){n=[n]
}for(var m=0;
m<e.length;
++m){var o=e[m];
for(var k=0;
k<n.length;
k++){var l=n[k];
if(o.keys[l]||o.keys["*"]){f(o,n);
break
}}}};
return{getData:function(){var j={};
for(var i in b){if(b.hasOwnProperty(i)){j[i]=b[i]
}}return j
},registerListener:function(i,j){g(i,j,false,true)
},registerOneTimeListener_:function(i,j){g(i,j,true,true)
},registerDeferredListener_:function(i,j){g(i,j,false,false)
},getDataSet:function(i){return b[i]
},putDataSet:function(i,j){a(i,j,true)
},putDataSets:function(i){var k=[];
for(var j in i){k.push(j);
a(j,i[j],false)
}c(k)
}}
}();
opensocial.data.getDataContext=function(){return opensocial.data.DataContext
};;
tamings___.push(function(a){caja___.whitelistFuncs([[opensocial.data,"getDataContext"],[opensocial.data.DataContext,"putDataSet"]])
});;
var opensocial=opensocial||{};
opensocial.xmlutil=opensocial.xmlutil||{};
opensocial.xmlutil.parser_=null;
opensocial.xmlutil.parseXML=function(b){if(typeof(DOMParser)!="undefined"){opensocial.xmlutil.parser_=opensocial.xmlutil.parser_||new DOMParser();
var a=opensocial.xmlutil.parser_.parseFromString(b,"text/xml");
if(a.firstChild&&a.firstChild.tagName=="parsererror"){throw Error(a.firstChild.firstChild.nodeValue)
}return a
}else{if(typeof(ActiveXObject)!="undefined"){var a=new ActiveXObject("MSXML2.DomDocument");
a.validateOnParse=false;
a.loadXML(b);
if(a.parseError&&a.parseError.errorCode){throw Error(a.parseError.reason)
}return a
}}throw Error("No XML parser found in this browser.")
};
opensocial.xmlutil.NSMAP={os:"http://opensocial.org/"};
opensocial.xmlutil.getRequiredNamespaces=function(b,a){var d=a?opensocial.xmlutil.getNamespaceDeclarations_(a):{};
for(var c in opensocial.xmlutil.NSMAP){if(opensocial.xmlutil.NSMAP.hasOwnProperty(c)&&!d.hasOwnProperty(c)&&b.indexOf("<"+c+":")>=0&&b.indexOf("xmlns:"+c+":")<0){d[c]=opensocial.xmlutil.NSMAP[c]
}}return opensocial.xmlutil.serializeNamespaces_(d)
};
opensocial.xmlutil.serializeNamespaces_=function(c){var a=[];
for(var b in c){if(c.hasOwnProperty(b)){a.push(" xmlns:",b,'="',c[b],'"')
}}return a.join("")
};
opensocial.xmlutil.getNamespaceDeclarations_=function(c){var d={};
for(var b=0;
b<c.attributes.length;
b++){var a=c.attributes[b].nodeName;
if(a.substring(0,6)!="xmlns:"){continue
}d[a.substring(6,a.length)]=c.getAttribute(a)
}return d
};
opensocial.xmlutil.ENTITIES='<!ENTITY nbsp "&#160;">';
opensocial.xmlutil.prepareXML=function(b,a){var c=opensocial.xmlutil.getRequiredNamespaces(b,a);
return"<!DOCTYPE root ["+opensocial.xmlutil.ENTITIES+']><root xml:space="preserve"'+c+">"+b+"</root>"
};;
opensocial.data.ATTR_KEY="key";
opensocial.data.SCRIPT_TYPE="text/os-data";
opensocial.data.NSMAP={};
opensocial.data.VAR_REGEX=/^([\w\W]*?)(\$\{[^\}]*\})([\w\W]*)$/;
opensocial.data.RequestDescriptor=function(c){this.tagName=c.tagName;
this.tagParts=this.tagName.split(":");
this.attributes={};
this.dependencies=false;
for(var b=0;
b<c.attributes.length;
++b){var a=c.attributes[b].nodeName;
if(a){var d=c.getAttribute(a);
if(a&&d){this.attributes[a]=d;
this.computeNeededKeys_(d)
}}}this.key=this.attributes[opensocial.data.ATTR_KEY];
this.register_()
};
opensocial.data.RequestDescriptor.prototype.hasAttribute=function(a){return !!this.attributes[a]
};
opensocial.data.RequestDescriptor.prototype.getAttribute=function(b){var a=this.attributes[b];
if(!a){return a
}var c=opensocial.data.parseExpression_(a);
if(!c){return a
}return opensocial.data.DataContext.evalExpression(c)
};
opensocial.data.parseExpression_=function(c){if(!c.length){return null
}var a=opensocial.data.VAR_REGEX;
var f=c;
var e=[];
var b=f.match(a);
if(!b){return null
}while(b){if(b[1].length>0){e.push(opensocial.data.transformLiteral_(b[1]))
}var d=b[2].substring(2,b[2].length-1);
e.push("("+d+")");
f=b[3];
b=f.match(a)
}if(f.length>0){e.push(opensocial.data.transformLiteral_(f))
}return e.join("+")
};
opensocial.data.transformLiteral_=function(a){return"'"+a.replace(/'/g,"\\'").replace(/\n/g," ")+"'"
};
opensocial.data.RequestDescriptor.prototype.sendRequest=function(){var b=opensocial.data.NSMAP[this.tagParts[0]];
var a=null;
if(b){a=b[this.tagParts[1]]
}if(!a){throw Error("Data handler undefined for "+this.tagName)
}a(this)
};
opensocial.data.RequestDescriptor.prototype.getSendRequestClosure=function(){var a=this;
return function(){a.sendRequest()
}
};
opensocial.data.RequestDescriptor.prototype.computeNeededKeys_=function(e){var a=opensocial.data.VAR_REGEX;
var b=e.match(a);
while(b){var d=b[2].substring(2,b[2].length-1);
var c=d.split(".")[0];
if(!this.neededKeys){this.neededKeys={}
}this.neededKeys[c]=true;
b=b[3].match(a)
}};
opensocial.data.RequestDescriptor.prototype.register_=function(){opensocial.data.registerRequestDescriptor(this)
};
opensocial.data.DataContext.evalExpression=function(a){return(new Function("context","with (context) return "+a))(opensocial.data.DataContext.getData())
};
opensocial.data.requests_={};
opensocial.data.registerRequestDescriptor=function(a){if(opensocial.data.requests_[a.key]){throw Error("Request already registered for "+a.key)
}opensocial.data.requests_[a.key]=a
};
opensocial.data.currentAPIRequest_=null;
opensocial.data.currentAPIRequestKeys_=null;
opensocial.data.currentAPIRequestCallbacks_=null;
opensocial.data.getCurrentAPIRequest=function(){if(!opensocial.data.currentAPIRequest_){opensocial.data.currentAPIRequest_=opensocial.newDataRequest();
opensocial.data.currentAPIRequestKeys_=[];
opensocial.data.currentAPIRequestCallbacks_={}
}return opensocial.data.currentAPIRequest_
};
opensocial.data.addToCurrentAPIRequest=function(c,b,a){opensocial.data.getCurrentAPIRequest().add(c,b);
opensocial.data.currentAPIRequestKeys_.push(b);
if(a){opensocial.data.currentAPIRequestCallbacks_[b]=a
}window.setTimeout(opensocial.data.sendCurrentAPIRequest_,0)
};
opensocial.data.sendCurrentAPIRequest_=function(){if(opensocial.data.currentAPIRequest_){opensocial.data.currentAPIRequest_.send(opensocial.data.createSharedRequestCallback_());
opensocial.data.currentAPIRequest_=null
}};
opensocial.data.createSharedRequestCallback_=function(){var b=opensocial.data.currentAPIRequestKeys_;
var a=opensocial.data.currentAPIRequestCallbacks_;
return function(c){opensocial.data.onAPIResponse(c,b,a)
}
};
opensocial.data.onAPIResponse=function(c,f,e){for(var b=0;
b<f.length;
b++){var a=f[b];
var d=c.get(a);
if(!d.hadError()){var g=opensocial.data.extractJson_(d,a);
if(e[a]){e[a](a,g)
}else{opensocial.data.DataContext.putDataSet(a,g)
}}}};
opensocial.data.extractJson_=function(e,d){var g=e.getData();
if(g.array_){var a=[];
for(var c=0;
c<g.array_.length;
c++){a.push(g.array_[c].fields_)
}g=a;
var f=opensocial.data.requests_[d];
if(f.tagName=="os:PeopleRequest"){var b=f.getAttribute("groupId");
if((!b||b=="@self")&&g.length==1){g=g[0]
}}}else{g=g.fields_||g
}return g
};
opensocial.data.registerRequestHandler=function(b,d){var a=b.split(":");
var c=opensocial.data.NSMAP[a[0]];
if(!c){if(!opensocial.xmlutil.NSMAP[a[0]]){opensocial.xmlutil.NSMAP[a[0]]=null
}c=opensocial.data.NSMAP[a[0]]={}
}else{if(c[a[1]]){throw Error("Request handler "+a[1]+" is already defined.")
}}c[a[1]]=d
};
opensocial.data.processDocumentMarkup=function(d){var e=d||document;
var a=e.getElementsByTagName("script");
for(var b=0;
b<a.length;
++b){var c=a[b];
if(c.type==opensocial.data.SCRIPT_TYPE){opensocial.data.loadRequests(c)
}}opensocial.data.registerRequestDependencies();
opensocial.data.executeRequests()
};
if(window.gadgets&&window.gadgets["util"]){gadgets.util.registerOnLoadHandler(opensocial.data.processDocumentMarkup)
}opensocial.data.loadRequests=function(a){if(typeof(a)=="string"){opensocial.data.loadRequestsFromMarkup_(a);
return
}var b=a;
a=b.value||b.innerHTML;
opensocial.data.loadRequestsFromMarkup_(a)
};
opensocial.data.loadRequestsFromMarkup_=function(a){a=opensocial.xmlutil.prepareXML(a);
var c=opensocial.xmlutil.parseXML(a);
var b=c.firstChild;
while(b.nodeType!=1){b=b.nextSibling
}opensocial.data.processDataNode_(b)
};
opensocial.data.processDataNode_=function(a){for(var c=a.firstChild;
c;
c=c.nextSibling){if(c.nodeType==1){var b=new opensocial.data.RequestDescriptor(c)
}}};
opensocial.data.registerRequestDependencies=function(){for(var a in opensocial.data.requests_){var c=opensocial.data.requests_[a];
var e=c.neededKeys;
var d=[];
for(var b in e){if(opensocial.data.DataContext.getDataSet(b)==null&&opensocial.data.requests_[b]){d.push(b)
}}if(d.length>0){opensocial.data.DataContext.registerListener(d,c.getSendRequestClosure());
c.dependencies=true
}}};
opensocial.data.executeRequests=function(){for(var a in opensocial.data.requests_){var b=opensocial.data.requests_[a];
if(!b.dependencies){b.sendRequest()
}}};
opensocial.data.transformSpecialValue=function(a){if(a.substring(0,1)=="@"){return a.substring(1).toUpperCase()
}return a
};
opensocial.data.addFieldsToParams_=function(c,b){if(!b){return
}var a=b.replace(/(^\s*|\s*$)/g,"").split(/\s*,\s*/);
c[opensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILS]=a
};
(function(){opensocial.data.registerRequestHandler("os:ViewerRequest",function(b){var c={};
opensocial.data.addFieldsToParams_(c,b.getAttribute("fields"));
var a=opensocial.data.getCurrentAPIRequest().newFetchPersonRequest("VIEWER",c);
opensocial.data.addToCurrentAPIRequest(a,b.key)
});
opensocial.data.registerRequestHandler("os:OwnerRequest",function(b){var c={};
opensocial.data.addFieldsToParams_(c,b.getAttribute("fields"));
var a=opensocial.data.getCurrentAPIRequest().newFetchPersonRequest("OWNER",c);
opensocial.data.addToCurrentAPIRequest(a,b.key)
});
opensocial.data.registerRequestHandler("os:PeopleRequest",function(e){var c=e.getAttribute("userId");
var b=e.getAttribute("groupId")||"@self";
var a={};
a.userId=opensocial.data.transformSpecialValue(c);
if(b!="@self"){a.groupId=opensocial.data.transformSpecialValue(b)
}var f={};
opensocial.data.addFieldsToParams_(f,e.getAttribute("fields"));
var d=opensocial.data.getCurrentAPIRequest().newFetchPeopleRequest(opensocial.newIdSpec(a),f);
opensocial.data.addToCurrentAPIRequest(d,e.key)
});
opensocial.data.registerRequestHandler("os:ActivitiesRequest",function(e){var c=e.getAttribute("userId");
var b=e.getAttribute("groupId")||"@self";
var a={};
a.userId=opensocial.data.transformSpecialValue(c);
if(b!="@self"){a.groupId=opensocial.data.transformSpecialValue(b)
}var d=opensocial.data.getCurrentAPIRequest().newFetchActivitiesRequest(opensocial.newIdSpec(a));
opensocial.data.addToCurrentAPIRequest(d,e.key)
});
opensocial.data.registerRequestHandler("os:HttpRequest",function(c){var a=c.getAttribute("href");
var b=c.getAttribute("format")||"json";
var d={};
d[gadgets.io.RequestParameters.CONTENT_TYPE]=b.toLowerCase()=="text"?gadgets.io.ContentType.TEXT:gadgets.io.ContentType.JSON;
d[gadgets.io.RequestParameters.METHOD]=gadgets.io.MethodType.GET;
gadgets.io.makeRequest(a,function(e){opensocial.data.DataContext.putDataSet(c.key,e.data)
},d)
})
})();
(opensocial.data.populateParams_=function(){if(window.gadgets&&gadgets.util.hasFeature("views")){opensocial.data.DataContext.putDataSet("ViewParams",gadgets.views.getParams())
}})();;
(function(){var a=function(){var c={};
var b=[];
var f=function(g,h){if(h&&g){b.push({key:g,request:h})
}return c
};
var e=function(h){var g={method:h.request["method"],id:h.key};
if(h.request["rpc"]){g.params=h.request["rpc"]
}return g
};
var d=function(g){var h={};
var q={};
var l=0;
var m=[];
for(var o=0;
o<b.length;
o++){var k=b[o]["request"]["transport"];
if(!q[k.name]){m.push(k);
l++
}q[k.name]=q[k.name]||[];
q[k.name].push(e(b[o]))
}var p=function(t){if(t.error){h.error=t.error
}for(var s=0;
s<b.length;
s++){var r=b[s]["key"];
var j=t[r];
if(j){if(j.error){h[r]=j
}else{h[r]=j.data||j.result
}}}l--;
if(l===0){g(h)
}};
for(var n=0;
n<m.length;
n++){m[n].execute(q[m[n]["name"]],p)
}if(l==0){window.setTimeout(function(){g(h)
},0)
}};
c.execute=d;
c.add=f;
return c
};
osapi.newBatch=a
})();;
osapi._registerMethod=function(f,e){if(f==="newBatch"){return
}var d=f.split(".");
var b=window.osapi;
for(var a=0;
a<d.length-1;
a++){b[d[a]]=b[d[a]]||{};
b=b[d[a]]
}var c=d[d.length-1];
if(b[c]){if(!b.__dupwarn){gadgets.warn("Skipping duplicate osapi method definition "+f+" on transport "+e.name+"; others may exist, but suppressing warnings")
}b.__dupwarn=true;
return
}b[c]=function(h){h=h||{};
h.userId=h.userId||"@viewer";
h.groupId=h.groupId||"@self";
var g=new osapi._BoundCall(f,e,h);
return g
};
if(typeof tamings___!=="undefined"){tamings___.push(function(){caja___.markTameAsFunction(b[c],f)
})
}};
osapi._BoundCall=function(c,b,a){this["method"]=c;
this["transport"]=b;
this["rpc"]=a
};
osapi._BoundCall.prototype.execute=function(e){var a=(typeof caja___!=="undefined"&&caja___.getUseless&&caja___.getUseless());
var d=a?caja___.getUseless():this;
var b=a?caja___.untame(e):e;
var c=osapi.newBatch();
c.add(this["method"],this);
c.execute(function(f){if(f.error){b.call(d,f.error)
}else{b.call(d,f[d.method])
}})
};;
tamings___.push(function(a){function b(){var c=osapi.newBatch();
caja___.whitelistFuncs([[c,"add"],[c,"execute"]]);
return caja___.tame(c)
}caja___.markTameAsFunction(b,"newBatch");
caja___.tamesTo(osapi.newBatch,b);
caja___.whitelistCtors([[osapi,"_BoundCall",Object]]);
caja___.whitelistMeths([[osapi._BoundCall,"execute"]])
});;
(function(){var a;
function b(j,i){function g(l){if(l.errors[0]){i({error:{code:l.rc,message:l.text}})
}else{var m=l.result||l.data;
if(m.error){i(m)
}else{var k={};
for(var n=0;
n<m.length;
n++){k[m[n]["id"]]=m[n]
}i(k)
}}}var f={POST_DATA:gadgets.json.stringify(j),CONTENT_TYPE:"JSON",METHOD:"POST",AUTHORIZATION:"SIGNED"};
var h={"Content-Type":"application/json"};
var d=this.name;
var e=shindig.auth.getSecurityToken();
if(e){if(a){h.Authorization="OAuth2 "+e
}else{d+="?st=";
d+=encodeURIComponent(e)
}}gadgets.io.makeNonProxiedRequest(d,g,f,h)
}function c(g){var j=g["osapi.services"];
a=g["osapi.useOAuth2"];
if(j){for(var f in j){if(j.hasOwnProperty(f)){if(f.indexOf("http")==0||f.indexOf("//")==0){var d=f.replace("%host%",document.location.host);
var k={name:d,execute:b};
var e=j[f];
for(var h=0;
h<e.length;
h++){osapi._registerMethod(e[h],k)
}}}}}}osapi._init=function(d){c(d)
};
if(gadgets.config){gadgets.config.register("osapi.services",null,c)
}})();;
if(gadgets&&gadgets.rpc){(function(){function a(e,d){var c=function(g){if(!g){d({code:500,message:"Container refused the request"})
}else{if(g.error){d(g)
}else{var f={};
for(var h=0;
h<g.length;
h++){f[g[h]["id"]]=g[h]
}d(f)
}}};
gadgets.rpc.call("..","osapi._handleGadgetRpcMethod",c,e)
}function b(c){var f={name:"gadgets.rpc",execute:a};
var l=c["osapi.services"];
if(l){for(var d in l){if(l.hasOwnProperty(d)){if(d==="gadgets.rpc"){var e=l[d];
for(var h=0;
h<e.length;
h++){osapi._registerMethod(e[h],f)
}}}}}if(osapi.container&&osapi.container.listMethods){var g=gadgets.util.runOnLoadHandlers;
var j=2;
var k=function(){j--;
if(j==0){g()
}};
gadgets.util.runOnLoadHandlers=k;
osapi.container.listMethods({}).execute(function(m){if(!m.error){for(var n=0;
n<m.length;
n++){if(m[n]!="container.listMethods"){osapi._registerMethod(m[n],f)
}}}k()
});
window.setTimeout(k,500)
}}if(gadgets.config){gadgets.config.register("osapi.services",null,b)
}})()
};;
gadgets.util.registerOnLoadHandler(function(){if(osapi&&osapi.people&&osapi.people.get){osapi.people.getViewer=function(a){a=a||{};
a.userId="@viewer";
a.groupId="@self";
return osapi.people.get(a)
};
osapi.people.getViewerFriends=function(a){a=a||{};
a.userId="@viewer";
a.groupId="@friends";
return osapi.people.get(a)
};
osapi.people.getOwner=function(a){a=a||{};
a.userId="@owner";
a.groupId="@self";
return osapi.people.get(a)
};
osapi.people.getOwnerFriends=function(a){a=a||{};
a.userId="@owner";
a.groupId="@friends";
return osapi.people.get(a)
}
}});;
tamings___.push(function(a){var b=a;
gadgets.util.registerOnLoadHandler(function(){if(osapi&&osapi.people&&osapi.people.get){caja___.whitelistFuncs([[osapi.people,"getViewer"],[osapi.people,"getViewerFriends"],[osapi.people,"getOwner"],[osapi.people,"getOwnerFriends"]])
}})
});;
var JSON=window.JSON||gadgets.json;
var _IG_Prefs=(function(){var a=null;
var b=function(){if(!a){a=new gadgets.Prefs();
a.setDontEscape_()
}return a
};
b._parseURL=gadgets.Prefs.parseUrl;
return b
})();
function _IG_Fetch_wrapper(b,a){b(a.data?a.data:"")
}function _IG_FetchContent(b,g,c){var f=c||{};
if(f.refreshInterval){f.REFRESH_INTERVAL=f.refreshInterval
}else{f.REFRESH_INTERVAL=3600
}for(var e in f){var d=f[e];
delete f[e];
f[e.toUpperCase()]=d
}var a=gadgets.util.makeClosure(null,_IG_Fetch_wrapper,g);
gadgets.io.makeRequest(b,a,f)
}function _IG_FetchXmlContent(b,e,c){var d=c||{};
if(d.refreshInterval){d.REFRESH_INTERVAL=d.refreshInterval
}else{d.REFRESH_INTERVAL=3600
}d.CONTENT_TYPE="DOM";
var a=gadgets.util.makeClosure(null,_IG_Fetch_wrapper,e);
gadgets.io.makeRequest(b,a,d)
}function _IG_FetchFeedAsJSON(b,f,c,a,d){var e=d||{};
e.CONTENT_TYPE="FEED";
e.NUM_ENTRIES=c;
e.GET_SUMMARIES=a;
gadgets.io.makeRequest(b,function(j){j.data=j.data||{};
if(j.errors&&j.errors.length>0){j.data.ErrorMsg=j.errors[0]
}if(j.data.link){j.data.URL=b
}if(j.data.title){j.data.Title=j.data.title
}if(j.data.description){j.data.Description=j.data.description
}if(j.data.link){j.data.Link=j.data.link
}if(j.data.items&&j.data.items.length>0){j.data.Entry=j.data.items;
for(var h=0;
h<j.data.Entry.length;
++h){var i=j.data.Entry[h];
i.Title=i.title;
i.Link=i.link;
i.Summary=i.summary||i.description;
i.Date=i.pubDate
}}for(var g=0;
g<j.data.Entry.length;
++g){var i=j.data.Entry[g];
i.Date=(i.Date/1000)
}f(j.data)
},e)
}function _IG_GetCachedUrl(a,b){var c=b||{};
c.REFRESH_INTERVAL=3600;
if(c.refreshInterval){c.REFRESH_INTERVAL=c.refreshInterval
}return gadgets.io.getProxyUrl(a,c)
}function _IG_GetImageUrl(a,b){return _IG_GetCachedUrl(a,b)
}function _IG_GetImage(b){var a=document.createElement("img");
a.src=_IG_GetCachedUrl(b);
return a
}function _IG_RegisterOnloadHandler(a){gadgets.util.registerOnLoadHandler(a)
}function _IG_Callback(b,c){var a=arguments;
return function(){var d=Array.prototype.slice.call(arguments);
b.apply(null,d.concat(Array.prototype.slice.call(a,1)))
}
}var _args=gadgets.util.getUrlParameters;
function _gel(a){return document.getElementById?document.getElementById(a):null
}function _gelstn(a){if(a==="*"&&document.all){return document.all
}return document.getElementsByTagName?document.getElementsByTagName(a):[]
}function _gelsbyregex(d,f){var c=_gelstn(d);
var e=[];
for(var b=0,a=c.length;
b<a;
++b){if(f.test(c[b].id)){e.push(c[b])
}}return e
}function _esc(a){return window.encodeURIComponent?encodeURIComponent(a):escape(a)
}function _unesc(a){return window.decodeURIComponent?decodeURIComponent(a):unescape(a)
}function _hesc(a){return gadgets.util.escapeString(a)
}function _striptags(a){return a.replace(/<\/?[^>]+>/g,"")
}function _trim(a){return a.replace(/^\s+|\s+$/g,"")
}function _toggle(a){a=(typeof a==="string")?_gel(a):a;
if(a!==null){if(a.style.display.length===0||a.style.display==="block"){a.style.display="none"
}else{if(a.style.display==="none"){a.style.display="block"
}}}}var _uid=(function(){var a=0;
return function(){return a++
}
})();
function _min(d,c){return(d<c?d:c)
}function _max(d,c){return(d>c?d:c)
}function _exportSymbols(a,c){var m=window;
var f=a.split(".");
for(var h=0,g=f.length;
h<g;
h++){var b=f[h];
m[b]=m[b]||{};
m=m[b]
}for(var e=0,d=c.length;
e<d;
e+=2){m[c[e]]=c[e+1]
}}function _IG_AddDOMEventHandler(c,b,a){gadgets.warn("_IG_AddDOMEventHandler not implemented - see SHINDIG-198")
};;
(function(){function e(b,c,a){b={msg:b||"",line:a||0,jsUrl:0==window.location.href.indexOf(c)?"-top-":c,fullUrl:window.location};try{if(++window._varz_numerrors,gadgets&&!(3<f)){c={};c[gadgets.io.RequestParameters.METHOD]=gadgets.io.MethodType.GET;a=encodeURIComponent||escape;var d=gadgets.util.getUrlParameters(),e=d.container||d.synd,g=d.gadget||d.url,k=["/gadgets/evthdlr?t=err&gadget=",a(g),"&container=",a(e),"&jsurl=",a(b.jsUrl),"&line=",a(b.line),"&session=",h,"&count=",f,"&msg=",a(b.msg)];gadgets.io.makeNonProxiedRequest(k.join(""),
null,c);f++}}catch(l){}}window._varz_numerrors=0;var h=(new Date).getTime(),f=0;-1==window.location.href.indexOf("&debug=1")&&-1==window.location.href.indexOf("?debug=1")&&(window.onerror=e)})();
;
(function(){var l=null,p=function(){function e(a){a=(""+a).match(E);return!a?l:new b(q(a[1]),q(a[2]),q(a[3]),q(a[4]),q(a[5]),q(a[6]),q(a[7]))}function z(a,e){return"string"==typeof a?encodeURI(a).replace(e,B):l}function B(a){a=a.charCodeAt(0);return"%"+"0123456789ABCDEF".charAt(a>>4&15)+"0123456789ABCDEF".charAt(a&15)}function y(a){if(a===l)return l;for(var a=a.replace(/(^|\/)\.(?:\/|$)/g,"$1").replace(/\/{2,}/g,"/"),e=m,b;(b=a.replace(e,"$1"))!=a;a=b);return a}function A(a,e){var b=a.R(),g=e.K();g?b.fa(e.j):
g=e.V();g?b.ca(e.m):g=e.W();g?b.da(e.k):g=e.Y();var m=e.g,k=y(m);if(g)b.ba(e.T()),k=k&&k.replace(x,"");else if(g=!!m){if(47!==k.charCodeAt(0))var k=y(b.g||"").replace(x,""),s=k.lastIndexOf("/")+1,k=y((s?k.substring(0,s):"")+y(m)).replace(x,"")}else k=k&&k.replace(x,""),k!==m&&b.G(k);g?b.G(k):g=e.Z();g?b.M(e.l):g=e.X();g&&b.ea(e.n);return b}function b(a,e,b,g,m,k,s){this.j=a;this.m=e;this.k=b;this.h=g;this.g=m;this.l=k;this.n=s}function q(a){return"string"==typeof a&&0<a.length?a:l}var m=RegExp(/(\/|^)(?:[^./][^/]*|\.{2,}(?:[^./][^/]*)|\.{3,}[^/]*)\/\.\.(?:\/|$)/),
x=/^(?:\.\.\/)*(?:\.\.$)?/;b.prototype.toString=function(){var a=[];l!==this.j&&a.push(this.j,":");l!==this.k&&(a.push("//"),l!==this.m&&a.push(this.m,"@"),a.push(this.k),l!==this.h&&a.push(":",this.h.toString()));l!==this.g&&a.push(this.g);l!==this.l&&a.push("?",this.l);l!==this.n&&a.push("#",this.n);return a.join("")};b.prototype.R=function(){return new b(this.j,this.m,this.k,this.h,this.g,this.l,this.n)};b.prototype.U=function(){return this.j&&decodeURIComponent(this.j).toLowerCase()};b.prototype.fa=
function(a){this.j=a?a:l};b.prototype.K=function(){return l!==this.j};b.prototype.ca=function(a){this.m=a?a:l};b.prototype.V=function(){return l!==this.m};b.prototype.da=function(a){this.k=a?a:l;this.G(this.g)};b.prototype.W=function(){return l!==this.k};b.prototype.T=function(){return this.h&&decodeURIComponent(this.h)};b.prototype.ba=function(a){if(a){a=Number(a);if(a!==(a&65535))throw Error("Bad port number "+a);this.h=""+a}else this.h=l};b.prototype.Y=function(){return l!==this.h};b.prototype.S=
function(){return this.g&&decodeURIComponent(this.g)};b.prototype.G=function(a){a?(a=""+a,this.g=!this.k||/^\//.test(a)?a:"/"+a):this.g=l};b.prototype.M=function(a){this.l=a?a:l};b.prototype.Z=function(){return l!==this.l};b.prototype.aa=function(a){if("object"===typeof a&&!(a instanceof Array)&&(a instanceof Object||"[object Array]"!==Object.prototype.toString.call(a))){var e=[],b=-1,g;for(g in a){var m=a[g];"string"===typeof m&&(e[++b]=g,e[++b]=m)}a=e}for(var e=[],b="",k=0;k<a.length;)g=a[k++],
m=a[k++],e.push(b,encodeURIComponent(g.toString())),b="&",m&&e.push("=",encodeURIComponent(m.toString()));this.l=e.join("")};b.prototype.ea=function(a){this.n=a?a:l};b.prototype.X=function(){return l!==this.n};var E=/^(?:([^:/?#]+):)?(?:\/\/(?:([^/?#]*)@)?([^/?#:@]*)(?::([0-9]+))?)?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/,D=/[#\/\?@]/g,F=/[\#\?]/g;b.parse=e;b.create=function(a,e,m,g,q,k,s){a=new b(z(a,D),z(e,D),"string"==typeof m?encodeURIComponent(m):l,0<g?g.toString():l,z(q,F),l,"string"==typeof s?encodeURIComponent(s):
l);k&&("string"===typeof k?a.M(k.replace(/[^?&=0-9A-Za-z_\-~.%]/g,B)):a.aa(k));return a};b.$=A;b.ja=y;b.va={pa:function(a){return/\.html$/.test(e(a).S())?"text/html":"application/javascript"},$:function(a,b){return a?A(e(a),e(b)).toString():""+b}};return b}();"undefined"!==typeof window&&(window.URI=p);var L={e:{NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,HTML:12,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10,MEDIA_QUERY:13}};L.atype=L.e;
L.w={"*::class":9,"*::dir":0,"*::draggable":0,"*::hidden":0,"*::id":4,"*::inert":0,"*::itemprop":0,"*::itemref":6,"*::itemscope":0,"*::lang":0,"*::onblur":2,"*::onchange":2,"*::onclick":2,"*::ondblclick":2,"*::onerror":2,"*::onfocus":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::onreset":2,"*::onscroll":2,"*::onselect":2,"*::onsubmit":2,"*::onunload":2,"*::spellcheck":0,"*::style":3,
"*::title":0,"*::translate":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::shape":0,"a::tabindex":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,"area::coords":0,"area::href":1,"area::nohref":0,"area::onblur":2,"area::onfocus":2,"area::shape":0,"area::tabindex":0,"area::target":10,"audio::controls":0,"audio::loop":0,"audio::mediagroup":5,"audio::muted":0,"audio::preload":0,"audio::src":1,"bdo::dir":0,"blockquote::cite":1,"br::clear":0,
"button::accesskey":0,"button::disabled":0,"button::name":8,"button::onblur":2,"button::onfocus":2,"button::tabindex":0,"button::type":0,"button::value":0,"canvas::height":0,"canvas::width":0,"caption::align":0,"col::align":0,"col::char":0,"col::charoff":0,"col::span":0,"col::valign":0,"col::width":0,"colgroup::align":0,"colgroup::char":0,"colgroup::charoff":0,"colgroup::span":0,"colgroup::valign":0,"colgroup::width":0,"command::checked":0,"command::command":5,"command::disabled":0,"command::icon":1,
"command::label":0,"command::radiogroup":0,"command::type":0,"data::value":0,"del::cite":1,"del::datetime":0,"details::open":0,"dir::compact":0,"div::align":0,"dl::compact":0,"fieldset::disabled":0,"font::color":0,"font::face":0,"font::size":0,"form::accept":0,"form::action":1,"form::autocomplete":0,"form::enctype":0,"form::method":0,"form::name":7,"form::novalidate":0,"form::onreset":2,"form::onsubmit":2,"form::target":10,"h1::align":0,"h2::align":0,"h3::align":0,"h4::align":0,"h5::align":0,"h6::align":0,
"hr::align":0,"hr::noshade":0,"hr::size":0,"hr::width":0,"iframe::align":0,"iframe::frameborder":0,"iframe::height":0,"iframe::marginheight":0,"iframe::marginwidth":0,"iframe::width":0,"img::align":0,"img::alt":0,"img::border":0,"img::height":0,"img::hspace":0,"img::ismap":0,"img::name":7,"img::src":1,"img::usemap":11,"img::vspace":0,"img::width":0,"input::accept":0,"input::accesskey":0,"input::align":0,"input::alt":0,"input::autocomplete":0,"input::checked":0,"input::disabled":0,"input::inputmode":0,
"input::ismap":0,"input::list":5,"input::max":0,"input::maxlength":0,"input::min":0,"input::multiple":0,"input::name":8,"input::onblur":2,"input::onchange":2,"input::onfocus":2,"input::onselect":2,"input::placeholder":0,"input::readonly":0,"input::required":0,"input::size":0,"input::src":1,"input::step":0,"input::tabindex":0,"input::type":0,"input::usemap":11,"input::value":0,"ins::cite":1,"ins::datetime":0,"label::accesskey":0,"label::for":5,"label::onblur":2,"label::onfocus":2,"legend::accesskey":0,
"legend::align":0,"li::type":0,"li::value":0,"map::name":7,"menu::compact":0,"menu::label":0,"menu::type":0,"meter::high":0,"meter::low":0,"meter::max":0,"meter::min":0,"meter::value":0,"ol::compact":0,"ol::reversed":0,"ol::start":0,"ol::type":0,"optgroup::disabled":0,"optgroup::label":0,"option::disabled":0,"option::label":0,"option::selected":0,"option::value":0,"output::for":6,"output::name":8,"p::align":0,"pre::width":0,"progress::max":0,"progress::min":0,"progress::value":0,"q::cite":1,"select::autocomplete":0,
"select::disabled":0,"select::multiple":0,"select::name":8,"select::onblur":2,"select::onchange":2,"select::onfocus":2,"select::required":0,"select::size":0,"select::tabindex":0,"source::type":0,"table::align":0,"table::bgcolor":0,"table::border":0,"table::cellpadding":0,"table::cellspacing":0,"table::frame":0,"table::rules":0,"table::summary":0,"table::width":0,"tbody::align":0,"tbody::char":0,"tbody::charoff":0,"tbody::valign":0,"td::abbr":0,"td::align":0,"td::axis":0,"td::bgcolor":0,"td::char":0,
"td::charoff":0,"td::colspan":0,"td::headers":6,"td::height":0,"td::nowrap":0,"td::rowspan":0,"td::scope":0,"td::valign":0,"td::width":0,"textarea::accesskey":0,"textarea::autocomplete":0,"textarea::cols":0,"textarea::disabled":0,"textarea::inputmode":0,"textarea::name":8,"textarea::onblur":2,"textarea::onchange":2,"textarea::onfocus":2,"textarea::onselect":2,"textarea::placeholder":0,"textarea::readonly":0,"textarea::required":0,"textarea::rows":0,"textarea::tabindex":0,"textarea::wrap":0,"tfoot::align":0,
"tfoot::char":0,"tfoot::charoff":0,"tfoot::valign":0,"th::abbr":0,"th::align":0,"th::axis":0,"th::bgcolor":0,"th::char":0,"th::charoff":0,"th::colspan":0,"th::headers":6,"th::height":0,"th::nowrap":0,"th::rowspan":0,"th::scope":0,"th::valign":0,"th::width":0,"thead::align":0,"thead::char":0,"thead::charoff":0,"thead::valign":0,"tr::align":0,"tr::bgcolor":0,"tr::char":0,"tr::charoff":0,"tr::valign":0,"track::default":0,"track::kind":0,"track::label":0,"track::srclang":0,"ul::compact":0,"ul::type":0,
"video::controls":0,"video::height":0,"video::loop":0,"video::mediagroup":5,"video::muted":0,"video::poster":1,"video::preload":0,"video::src":1,"video::width":0};L.ATTRIBS=L.w;L.c={OPTIONAL_ENDTAG:1,EMPTY:2,CDATA:4,RCDATA:8,UNSAFE:16,FOLDABLE:32,SCRIPT:64,STYLE:128,VIRTUALIZED:256};L.eflags=L.c;
L.f={a:0,abbr:0,acronym:0,address:0,applet:272,area:2,article:0,aside:0,audio:0,b:0,base:274,basefont:274,bdi:0,bdo:0,big:0,blockquote:0,body:305,br:2,button:0,canvas:0,caption:0,center:0,cite:0,code:0,col:2,colgroup:1,command:2,data:0,datalist:0,dd:1,del:0,details:0,dfn:0,dialog:272,dir:0,div:0,dl:0,dt:1,em:0,fieldset:0,figcaption:0,figure:0,font:0,footer:0,form:0,frame:274,frameset:272,h1:0,h2:0,h3:0,h4:0,h5:0,h6:0,head:305,header:0,hgroup:0,hr:2,html:305,i:0,iframe:4,img:2,input:2,ins:0,isindex:274,
kbd:0,keygen:274,label:0,legend:0,li:1,link:274,map:0,mark:0,menu:0,meta:274,meter:0,nav:0,nobr:0,noembed:276,noframes:276,noscript:276,object:272,ol:0,optgroup:0,option:1,output:0,p:1,param:274,pre:0,progress:0,q:0,s:0,samp:0,script:84,section:0,select:0,small:0,source:2,span:0,strike:0,strong:0,style:148,sub:0,summary:0,sup:0,table:0,tbody:1,td:1,textarea:8,tfoot:1,th:1,thead:1,time:0,title:280,tr:1,track:2,tt:0,u:0,ul:0,"var":0,video:0,wbr:2};L.ELEMENTS=L.f;
L.O={a:"HTMLAnchorElement",abbr:"HTMLElement",acronym:"HTMLElement",address:"HTMLElement",applet:"HTMLAppletElement",area:"HTMLAreaElement",article:"HTMLElement",aside:"HTMLElement",audio:"HTMLAudioElement",b:"HTMLElement",base:"HTMLBaseElement",basefont:"HTMLBaseFontElement",bdi:"HTMLElement",bdo:"HTMLElement",big:"HTMLElement",blockquote:"HTMLQuoteElement",body:"HTMLBodyElement",br:"HTMLBRElement",button:"HTMLButtonElement",canvas:"HTMLCanvasElement",caption:"HTMLTableCaptionElement",center:"HTMLElement",
cite:"HTMLElement",code:"HTMLElement",col:"HTMLTableColElement",colgroup:"HTMLTableColElement",command:"HTMLCommandElement",data:"HTMLElement",datalist:"HTMLDataListElement",dd:"HTMLElement",del:"HTMLModElement",details:"HTMLDetailsElement",dfn:"HTMLElement",dialog:"HTMLDialogElement",dir:"HTMLDirectoryElement",div:"HTMLDivElement",dl:"HTMLDListElement",dt:"HTMLElement",em:"HTMLElement",fieldset:"HTMLFieldSetElement",figcaption:"HTMLElement",figure:"HTMLElement",font:"HTMLFontElement",footer:"HTMLElement",
form:"HTMLFormElement",frame:"HTMLFrameElement",frameset:"HTMLFrameSetElement",h1:"HTMLHeadingElement",h2:"HTMLHeadingElement",h3:"HTMLHeadingElement",h4:"HTMLHeadingElement",h5:"HTMLHeadingElement",h6:"HTMLHeadingElement",head:"HTMLHeadElement",header:"HTMLElement",hgroup:"HTMLElement",hr:"HTMLHRElement",html:"HTMLHtmlElement",i:"HTMLElement",iframe:"HTMLIFrameElement",img:"HTMLImageElement",input:"HTMLInputElement",ins:"HTMLModElement",isindex:"HTMLUnknownElement",kbd:"HTMLElement",keygen:"HTMLKeygenElement",
label:"HTMLLabelElement",legend:"HTMLLegendElement",li:"HTMLLIElement",link:"HTMLLinkElement",map:"HTMLMapElement",mark:"HTMLElement",menu:"HTMLMenuElement",meta:"HTMLMetaElement",meter:"HTMLMeterElement",nav:"HTMLElement",nobr:"HTMLElement",noembed:"HTMLElement",noframes:"HTMLElement",noscript:"HTMLElement",object:"HTMLObjectElement",ol:"HTMLOListElement",optgroup:"HTMLOptGroupElement",option:"HTMLOptionElement",output:"HTMLOutputElement",p:"HTMLParagraphElement",param:"HTMLParamElement",pre:"HTMLPreElement",
progress:"HTMLProgressElement",q:"HTMLQuoteElement",s:"HTMLElement",samp:"HTMLElement",script:"HTMLScriptElement",section:"HTMLElement",select:"HTMLSelectElement",small:"HTMLElement",source:"HTMLSourceElement",span:"HTMLSpanElement",strike:"HTMLElement",strong:"HTMLElement",style:"HTMLStyleElement",sub:"HTMLElement",summary:"HTMLElement",sup:"HTMLElement",table:"HTMLTableElement",tbody:"HTMLTableSectionElement",td:"HTMLTableDataCellElement",textarea:"HTMLTextAreaElement",tfoot:"HTMLTableSectionElement",
th:"HTMLTableHeaderCellElement",thead:"HTMLTableSectionElement",time:"HTMLTimeElement",title:"HTMLTitleElement",tr:"HTMLTableRowElement",track:"HTMLTrackElement",tt:"HTMLElement",u:"HTMLElement",ul:"HTMLUListElement","var":"HTMLElement",video:"HTMLVideoElement",wbr:"HTMLElement"};L.ELEMENT_DOM_INTERFACES=L.O;L.N={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2};L.ueffects=L.N;
L.J={"a::href":2,"area::href":2,"audio::src":1,"blockquote::cite":0,"command::icon":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0,"video::poster":1,"video::src":1};L.URIEFFECTS=L.J;L.L={UNSANDBOXED:2,SANDBOXED:1,DATA:0};L.ltypes=L.L;L.I={"a::href":2,"area::href":2,"audio::src":2,"blockquote::cite":2,"command::icon":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2,"video::poster":1,"video::src":2};L.LOADERTYPES=L.I;
"undefined"!==typeof window&&(window.html4=L);var Q=function(e){function z(f){if(G.hasOwnProperty(f))return G[f];var a=f.match(R);return a?String.fromCharCode(parseInt(a[1],10)):(a=f.match(S))?String.fromCharCode(parseInt(a[1],16)):H&&T.test(f)?(H.innerHTML="&"+f+";",a=H.textContent,G[f]=a):"&"+f+";"}function B(f,a){return z(a)}function y(f){return f.replace(U,B)}function A(f){return(""+f).replace(V,"&amp;").replace(M,"&lt;").replace(N,"&gt;").replace(W,"&#34;")}function b(f){return f.replace(X,"&amp;$1").replace(M,"&lt;").replace(N,"&gt;")}
function q(f){var a={z:f.z||f.cdata,A:f.A||f.comment,B:f.B||f.endDoc,r:f.r||f.endTag,d:f.d||f.pcdata,F:f.F||f.rcdata,H:f.H||f.startDoc,v:f.v||f.startTag};return function(f,e){var c;var b=/(<\/|<\!--|<[!?]|[&<>])/g;c=f+"";if(Y)c=c.split(b);else{for(var i=[],h=0,n;(n=b.exec(c))!==l;)i.push(c.substring(h,n.index)),i.push(n[0]),h=n.index+n[0].length;i.push(c.substring(h));c=i}x(a,c,0,{o:!1,C:!1},e)}}function m(f,a,d,e,c){return function(){x(f,a,d,e,c)}}function x(f,a,d,j,c){try{f.H&&0==d&&f.H(c);for(var b,
i,h,n=a.length;d<n;){var r=a[d++],k=a[d];switch(r){case "&":Z.test(k)?(f.d&&f.d("&"+k,c,t,m(f,a,d,j,c)),d++):f.d&&f.d("&amp;",c,t,m(f,a,d,j,c));break;case "</":if(b=/^([-\w:]+)[^\'\"]*/.exec(k))if(b[0].length===k.length&&">"===a[d+1])d+=2,h=b[1].toLowerCase(),f.r&&f.r(h,c,t,m(f,a,d,j,c));else{var g=a,o=d,q=f,s=c,v=t,y=j,x=D(g,o);x?(q.r&&q.r(x.name,s,v,m(q,g,o,y,s)),d=x.next):d=g.length}else f.d&&f.d("&lt;/",c,t,m(f,a,d,j,c));break;case "<":if(b=/^([-\w:]+)\s*\/?/.exec(k))if(b[0].length===k.length&&
">"===a[d+1]){d+=2;h=b[1].toLowerCase();f.v&&f.v(h,[],c,t,m(f,a,d,j,c));var z=e.f[h];z&O&&(d=E(a,{name:h,next:d,c:z},f,c,t,j))}else{var g=a,o=f,q=c,s=t,v=j,C=D(g,d);C?(o.v&&o.v(C.name,C.P,q,s,m(o,g,C.next,v,q)),d=C.c&O?E(g,C,o,q,s,v):C.next):d=g.length}else f.d&&f.d("&lt;",c,t,m(f,a,d,j,c));break;case "<\!--":if(!j.C){for(i=d+1;i<n&&!(">"===a[i]&&/--$/.test(a[i-1]));i++);if(i<n){if(f.A){var A=a.slice(d,i).join("");f.A(A.substr(0,A.length-2),c,t,m(f,a,i+1,j,c))}d=i+1}else j.C=!0}j.C&&f.d&&f.d("&lt;!--",
c,t,m(f,a,d,j,c));break;case "<!":if(/^\w/.test(k)){if(!j.o){for(i=d+1;i<n&&">"!==a[i];i++);i<n?d=i+1:j.o=!0}j.o&&f.d&&f.d("&lt;!",c,t,m(f,a,d,j,c))}else f.d&&f.d("&lt;!",c,t,m(f,a,d,j,c));break;case "<?":if(!j.o){for(i=d+1;i<n&&">"!==a[i];i++);i<n?d=i+1:j.o=!0}j.o&&f.d&&f.d("&lt;?",c,t,m(f,a,d,j,c));break;case ">":f.d&&f.d("&gt;",c,t,m(f,a,d,j,c));break;case "":break;default:f.d&&f.d(r,c,t,m(f,a,d,j,c))}}f.B&&f.B(c)}catch(B){if(B!==t)throw B;}}function E(a,w,d,j,c,u){var i=a.length;I.hasOwnProperty(w.name)||
(I[w.name]=RegExp("^"+w.name+"(?:[\\s\\/]|$)","i"));for(var h=I[w.name],n=w.next,r=w.next+1;r<i&&!("</"===a[r-1]&&h.test(a[r]));r++);r<i&&(r-=1);i=a.slice(n,r).join("");if(w.c&e.c.CDATA)d.z&&d.z(i,j,c,m(d,a,r,u,j));else if(w.c&e.c.RCDATA)d.F&&d.F(b(i),j,c,m(d,a,r,u,j));else throw Error("bug");return r}function D(a,b){var d=/^([-\w:]+)/.exec(a[b]),j={};j.name=d[1].toLowerCase();j.c=e.f[j.name];for(var c=a[b].substr(d[0].length),u=b+1,i=a.length;u<i&&">"!==a[u];u++)c+=a[u];if(!(i<=u)){for(var h=[];""!==
c;)if(d=$.exec(c))if(d[4]&&!d[5]||d[6]&&!d[7]){for(var d=d[4]||d[6],n=!1,c=[c,a[u++]];u<i;u++){if(n){if(">"===a[u])break}else 0<=a[u].indexOf(d)&&(n=!0);c.push(a[u])}if(i<=u)break;c=c.join("")}else{var n=d[1].toLowerCase(),r;if(d[2]){r=d[3];var g=r.charCodeAt(0);if(34===g||39===g)r=r.substr(1,r.length-2);r=y(r.replace(aa,""))}else r="";h.push(n,r);c=c.substr(d[0].length)}else c=c.replace(/^[\s\S][^a-z\s]*/,"");j.P=h;j.next=u+1;return j}}function F(a){function b(a,f){j||f.push(a)}var d,j;return q({startDoc:function(){d=
[];j=!1},startTag:function(c,b,i){if(!j&&e.f.hasOwnProperty(c)){var h=e.f[c];if(!(h&e.c.FOLDABLE)){var n=a(c,b);if(n){if("object"!==typeof n)throw Error("tagPolicy did not return object (old API?)");if("attribs"in n)b=n.attribs;else throw Error("tagPolicy gave no attribs");var g;"tagName"in n?(g=n.tagName,n=e.f[g]):(g=c,n=h);if(h&e.c.OPTIONAL_ENDTAG){var k=d[d.length-1];k&&k.D===c&&(k.t!==g||c!==g)&&i.push("</",k.t,">")}h&e.c.EMPTY||d.push({D:c,t:g});i.push("<",g);c=0;for(k=b.length;c<k;c+=2){var m=
b[c],w=b[c+1];w!==l&&void 0!==w&&i.push(" ",m,'="',A(w),'"')}i.push(">");h&e.c.EMPTY&&!(n&e.c.EMPTY)&&i.push("</",g,">")}else j=!(h&e.c.EMPTY)}}},endTag:function(a,f){if(j)j=!1;else if(e.f.hasOwnProperty(a)){var b=e.f[a];if(!(b&(e.c.EMPTY|e.c.FOLDABLE))){if(b&e.c.OPTIONAL_ENDTAG)for(b=d.length;0<=--b;){var h=d[b].D;if(h===a)break;if(!(e.f[h]&e.c.OPTIONAL_ENDTAG))return}else for(b=d.length;0<=--b&&d[b].D!==a;);if(!(0>b)){for(h=d.length;--h>b;){var g=d[h].t;e.f[g]&e.c.OPTIONAL_ENDTAG||f.push("</",g,
">")}b<d.length&&(a=d[b].t);d.length=b;f.push("</",a,">")}}}},pcdata:b,rcdata:b,cdata:b,endDoc:function(a){for(;d.length;d.length--)a.push("</",d[d.length-1].t,">")}})}function a(a,b,d,e,c){if(!c)return l;try{var g=p.parse(""+a);if(g&&(!g.K()||ba.test(g.U()))){var i=c(g,b,d,e);return i?i.toString():l}}catch(h){}return l}function v(a,b,d,e,c){d||a(b+" removed",{Q:"removed",tagName:b});if(e!==c){var g="changed";e&&!c?g="removed":!e&&c&&(g="added");a(b+"."+d+" "+g,{Q:g,tagName:b,ia:d,oldValue:e,newValue:c})}}
function J(a,b,d){b=b+"::"+d;if(a.hasOwnProperty(b))return a[b];b="*::"+d;if(a.hasOwnProperty(b))return a[b]}function g(b,g,d,j,c){for(var k=0;k<g.length;k+=2){var i=g[k],h=g[k+1],n=h,m=l,o;if((o=b+"::"+i,e.w.hasOwnProperty(o))||(o="*::"+i,e.w.hasOwnProperty(o)))m=e.w[o];if(m!==l)switch(m){case e.e.NONE:break;case e.e.SCRIPT:h=l;c&&v(c,b,i,n,h);break;case e.e.STYLE:if("undefined"===typeof s){h=l;c&&v(c,b,i,n,h);break}var q=[];s(h,{ka:function(b,c){var f=b.toLowerCase();P(f,c,d?function(b){return a(b,
e.N.ga,e.L.ha,{TYPE:"CSS",CSS_PROP:f},d)}:l);c.length&&q.push(f+": "+c.join(" "))}});h=0<q.length?q.join(" ; "):l;c&&v(c,b,i,n,h);break;case e.e.ID:case e.e.IDREF:case e.e.IDREFS:case e.e.GLOBAL_NAME:case e.e.LOCAL_NAME:case e.e.CLASSES:h=j?j(h):h;c&&v(c,b,i,n,h);break;case e.e.URI:h=a(h,J(e.J,b,i),J(e.I,b,i),{TYPE:"MARKUP",XML_ATTR:i,XML_TAG:b},d);c&&v(c,b,i,n,h);break;case e.e.URI_FRAGMENT:h&&"#"===h.charAt(0)?(h=h.substring(1),h=j?j(h):h,h!==l&&void 0!==h&&(h="#"+h)):h=l;c&&v(c,b,i,n,h);break;
default:h=l,c&&v(c,b,i,n,h)}else h=l,c&&v(c,b,i,n,h);g[k+1]=h}return g}function K(a,b,d){return function(j,c){if(e.f[j]&e.c.UNSAFE)d&&v(d,j,void 0,void 0,void 0);else return{attribs:g(j,c,a,b,d)}}}function k(a,b){var d=[];F(b)(a,d);return d.join("")}var s,P;"undefined"!==typeof window&&(s=window.parseCssDeclarations,P=window.sanitizeCssProperty);var G={lt:"<",LT:"<",gt:">",GT:">",amp:"&",AMP:"&",quot:'"',apos:"'",nbsp:"\u00a0"},R=/^#(\d+)$/,S=/^#x([0-9A-Fa-f]+)$/,T=/^[A-Za-z][A-za-z0-9]+$/,H="undefined"!==
typeof window&&window.document?window.document.createElement("textarea"):l,aa=/\0/g,U=/&(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/g,Z=/^(#[0-9]+|#[xX][0-9A-Fa-f]+|\w+);/,V=/&/g,X=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,M=/[<]/g,N=/>/g,W=/\"/g,$=/^\s*([-.:\w]+)(?:\s*(=)\s*((")[^"]*("|$)|(')[^']*('|$)|(?=[a-z][-\w]*\s*=)|[^"'\s]*))?/i,Y=3==="a,b".split(/(,)/).length,O=e.c.CDATA|e.c.RCDATA,t={},I={},ba=/^(?:https?|mailto)$/i,o={};o.la=o.escapeAttrib=A;o.ma=o.makeHtmlSanitizer=F;o.na=o.makeSaxParser=
q;o.oa=o.makeTagPolicy=K;o.qa=o.normalizeRCData=b;o.ra=o.sanitize=function(a,b,d,e){return k(a,K(b,d,e))};o.sa=o.sanitizeAttribs=g;o.ta=o.sanitizeWithPolicy=k;o.ua=o.unescapeEntities=y;return o}(L),ca=Q.sanitize;"undefined"!==typeof window&&(window.html=Q,window.html_sanitize=ca);})();
;
gadgets.views=function(){var b={};
var f=null;
var c={};
var e={};
function a(i){if(!i){i=window.event
}var h;
if(i.target){h=i.target
}else{if(i.srcElement){h=i.srcElement
}}if(h.nodeType===3){h=h.parentNode
}if(h.nodeName.toLowerCase()==="a"){var g=h.getAttribute("href");
if(g&&g[0]!=="#"&&g.indexOf("://")===-1){gadgets.views.requestNavigateTo(f,g);
if(i.stopPropagation){i.stopPropagation()
}if(i.preventDefault){i.preventDefault()
}i.returnValue=false;
i.cancelBubble=true;
return false
}}return false
}function d(j){var o=j.views||{};
for(var p in o){if(o.hasOwnProperty(p)){if(p!="rewriteLinks"){var l=o[p];
var k=p.toUpperCase();
b[k]=k;
if(!l){continue
}c[p]=new gadgets.views.View(p,l.isOnlyVisible);
var h=l.aliases||[];
for(var m=0,n;
(n=h[m]);
++m){c[n]=new gadgets.views.View(p,l.isOnlyVisible)
}}}}var g=gadgets.util.getUrlParameters();
if(g["view-params"]){e=gadgets.json.parse(g["view-params"])||e
}f=c[g.view]||c["default"];
if(o.rewriteLinks){gadgets.util.attachBrowserEvent(document,"click",a,false)
}}gadgets.config.register("views",null,d);
return{bind:function(x,v){if(typeof x!=="string"){throw new Error("Invalid urlTemplate")
}if(typeof v!=="object"){throw new Error("Invalid environment")
}var s=/^([a-zA-Z0-9][a-zA-Z0-9_\.\-]*)(=([a-zA-Z0-9\-\._~]|(%[0-9a-fA-F]{2}))*)?$/,z=new RegExp("\\{([^}]*)\\}","g"),w=/^-([a-zA-Z]+)\|([^|]*)\|(.+)$/,n=[],r=0,l,k,i,q,m,h,o,t;
function j(B,A){return v.hasOwnProperty(B)?v[B]:A
}function g(A){if(!(k=A.match(s))){throw new Error("Invalid variable : "+A)
}}function y(E,A,D){var B,C=E.split(",");
for(B=0;
B<C.length;
++B){g(C[B]);
if(D(A,j(k[1]),k[1])){break
}}return A
}function u(A){if((typeof A==="object")||(typeof A==="function")){for(var B in A){if(A.hasOwnProperty(B)){return false
}}return true
}return false
}while((l=z.exec(x))){n.push(x.substring(r,l.index));
r=z.lastIndex;
if((k=l[1].match(s))){i=k[1];
q=k[2]?k[2].substr(1):"";
n.push(j(i,q))
}else{if((k=l[1].match(w))){m=k[1];
h=k[2];
o=k[3];
t=0;
switch(m){case"neg":t=1;
case"opt":if(y(o,{flag:t},function(B,A){if(typeof A!=="undefined"&&!u(A)){B.flag=!B.flag;
return 1
}return 0
}).flag){n.push(h)
}break;
case"join":n.push(y(o,[],function(C,B,A){if(typeof B==="string"){C.push(A+"="+B)
}else{if(typeof B==="object"){for(var D in B){if(B.hasOwnProperty(D)){C.push(D+"="+B[D])
}}}}}).join(h));
break;
case"list":g(o);
var p=j(k[1]);
if(typeof p==="object"&&typeof p.join==="function"){n.push(p.join(h))
}break;
case"prefix":t=1;
case"suffix":g(o);
p=j(k[1],k[2]&&k[2].substr(1));
if(typeof p==="string"){n.push(t?h+p:p+h)
}else{if(typeof p==="object"&&typeof p.join==="function"){n.push(t?h+p.join(h):p.join(h)+h)
}}break;
default:throw new Error("Invalid operator : "+m)
}}else{throw new Error("Invalid syntax : "+l[0])
}}}n.push(x.substr(r));
return n.join("")
},requestNavigateTo:function(g,i,h){if(typeof g!=="string"){g=g.getName()
}gadgets.rpc.call(null,"requestNavigateTo",null,g,i,h)
},getCurrentView:function(){return f
},getSupportedViews:function(){return c
},getParams:function(){return e
},ViewType:b}
}();
gadgets.views.View=function(a,b){this.name_=a;
this.isOnlyVisible_=!!b
};
gadgets.views.View.prototype.getName=function(){return this.name_
};
gadgets.views.View.prototype.getUrlTemplate=function(){return gadgets.config&&gadgets.config.views&&gadgets.config.views[this.name_]&&gadgets.config.views[this.name_].urlTemplate
};
gadgets.views.View.prototype.bind=function(a){return gadgets.views.bind(this.getUrlTemplate(),a)
};
gadgets.views.View.prototype.isOnlyVisibleGadget=function(){return this.isOnlyVisible_
};;
tamings___.push(function(a){caja___.whitelistCtors([[gadgets.views,"View",Object]]);
caja___.whitelistMeths([[gadgets.views.View,"bind"],[gadgets.views.View,"getUrlTemplate"],[gadgets.views.View,"isOnlyVisibleGadget"],[gadgets.views.View,"getName"]]);
caja___.whitelistFuncs([[gadgets.views,"getCurrentView"],[gadgets.views,"getParams"],[gadgets.views,"requestNavigateTo"]])
});;
gadgets.skins=function(){var b=null,e={BG_COLOR:["CONTENT_BG_COLOR"],FONT_COLOR:["CONTENT_TEXT_COLOR"],ANCHOR_COLOR:["CONTENT_LINK_COLOR"],CONTENT_HEADLINE_COLOR:["CONTENT_TEXT_COLOR"],CONTENT_SECONDARY_TEXT_COLOR:["CONTENT_TEXT_COLOR"],CONTENT_SECONDARY_LINK_COLOR:["CONTENT_LINK_COLOR"],ENDCAP_BG_COLOR:["CONTENT_BG_COLOR"],ENDCAP_LINK_COLOR:["CONTENT_LINK_COLOR"],ENDCAP_TEXT_COLOR:["CONTENT_TEXT_COLOR"],ALTERNATE_BG_COLOR:["CONTENT_BG_COLOR"],CONTENT_VISITED_LINK_COLOR:["CONTENT_LINK_COLOR"]};return{init:function(){b=
null},getProperty:function(d){if(!b){var c=gadgets.views.getParams();b=c.skin||{}}var a=b[d];if(!a&&e[d])for(c=0;c<e[d].length&&!(a=e[d][c],a=b[a]);c++);a&&(a=gadgets.util.escapeString(a));return a}}}();gadgets.skins.Property=gadgets.util.makeEnum("BG_IMAGE BG_COLOR FONT_COLOR BG_POSITION BG_REPEAT ANCHOR_COLOR FONT_FACE BORDER_COLOR CONTENT_BG_COLOR CONTENT_HEADLINE_COLOR CONTENT_LINK_COLOR CONTENT_SECONDARY_TEXT_COLOR CONTENT_SECONDARY_LINK_COLOR CONTENT_TEXT_COLOR ENDCAP_BG_COLOR ENDCAP_LINK_COLOR ENDCAP_TEXT_COLOR CONTENT_VISITED_LINK_COLOR ALTERNATE_BG_COLOR".split(" "));
;
gadgets.window=gadgets.window||{};
(function(){gadgets.window.getViewportDimensions=function(){var a=0;
var b=0;
if(self.innerHeight){a=self.innerWidth;
b=self.innerHeight
}else{if(document.documentElement&&document.documentElement.clientHeight){a=document.documentElement.clientWidth;
b=document.documentElement.clientHeight
}else{if(document.body){a=document.body.clientWidth;
b=document.body.clientHeight
}}}return{width:a,height:b}
}
})();;
tamings___.push(function(a){caja___.whitelistFuncs([[gadgets.window,"getViewportDimensions"]])
});;
gadgets.window=gadgets.window||{};
(function(){function a(e,c){var d=window.getComputedStyle(e,"");
var f=d.getPropertyValue(c);
f.match(/^([0-9]+)/);
return parseInt(RegExp.$1,10)
}function b(){var m=0;
var k=[document.body];
while(k.length>0){var f=k.shift();
var e=f.childNodes;
if(typeof f.style!=="undefined"){var g=f.style.overflowY;
if(!g){var j=document.defaultView.getComputedStyle(f,null);
g=j?j.overflowY:null
}if(g!="visible"&&g!="inherit"){var l=f.style.height;
if(!l){var j=document.defaultView.getComputedStyle(f,null);
l=j?j.height:""
}if(l.length>0&&l!="auto"){continue
}}}for(var h=0;
h<e.length;
h++){var d=e[h];
if(typeof d.offsetTop!=="undefined"&&typeof d.offsetHeight!=="undefined"){var c=d.offsetTop+d.offsetHeight+a(d,"margin-bottom");
m=Math.max(m,c)
}k.push(d)
}}return m+a(document.body,"border-bottom")+a(document.body,"margin-bottom")+a(document.body,"padding-bottom")
}gadgets.window.getHeight=function(){var g=gadgets.window.getViewportDimensions().height;
var c=document.body;
var f=document.documentElement;
if(document.compatMode==="CSS1Compat"&&f.scrollHeight){return f.scrollHeight!==g?f.scrollHeight:f.offsetHeight
}else{if(navigator.userAgent.indexOf("AppleWebKit")>=0){return b()
}else{if(c&&f){var d=f.scrollHeight;
var e=f.offsetHeight;
if(f.clientHeight!==e){d=c.scrollHeight;
e=c.offsetHeight
}if(d>g){return d>e?d:e
}else{return d<e?d:e
}}}}}
}());;
tamings___.push(function(a){caja___.whitelistFuncs([[gadgets.window,"getHeight"]])
});;
gadgets.window=gadgets.window||{};
(function(){var a;
gadgets.window.adjustHeight=function(d){var c=parseInt(d,10);
var b=false;
if(isNaN(c)){b=true;
c=gadgets.window.getHeight()
}if(c!==a&&!isNaN(c)&&!(b&&c===0)){a=c;
gadgets.rpc.call(null,"resize_iframe",null,c)
}}
}());
var _IG_AdjustIFrameHeight=gadgets.window.adjustHeight;;
tamings___.push(function(a){caja___.whitelistFuncs([[gadgets.window,"adjustHeight"]])
});;
gadgets.config.init({"opensocial":{"invalidatePath":"//%host%/gadgets/api/rpc","domain":"google.com","path":"http://%host%/ps/api/rpc","supportedFields":{"person":["id","name","thumbnailUrl","nickname","profileUrl"],"mediaItem":["album_id","created","description","duration","file_size","id","language","last_updated","location","mime_type","num_comments","num_views","num_votes","rating","start_time","tagged_people","tags","thumbnail_url","title","type","url"],"sortOrder":["name"],"name":["unstructured","familyName","givenName","additionalName","honorificPrefix","honorificSuffix"],"album":["id","thumbnailUrl","title","description","location","ownerId"],"filterType":["all","hasApp"],"activity":["id","externalId","userId","appId","streamTitle","streamUrl","streamSourceUrl","streamFaviconUrl","title","body","url","mediaItems","postedTime","userThumbnailUrl","userProfileUrl","userName"],"activityMediaItem":["type","mimeType","url"]}},"rpc":{"commSwf":"//xpc.googleusercontent.com/gadgets/xpc.swf","passReferrer":"p2c:query","parentRelayUrl":"/rpc_relay.html"},"shindig.auth":{"authToken":"","trustedJson":""},"views":{"canvas":{"isOnlyVisible":true,"urlTemplate":"http://localhost/gadgets/canvas?{var}","aliases":["FULL_PAGE"]},"embed":{"isOnlyVisible":false,"urlTemplate":"http://localhost/gadgets/embed?{var}","aliases":["profile","DASHBOARD","default"]},"profile":{"isOnlyVisible":false,"urlTemplate":"http://localhost/gadgets/profile?{var}","aliases":["DASHBOARD","default"]}},"core.util":{"content-rewrite":{"exclude-urls":".*"},"views":{},"dynamic-height":{},"osapi":{},"core":{},"opensocial-data":{},"skins":{},"opensocial-0.8":{}},"osapi.services":{"//%host%/gadgets/api/rpc":["http.get","http.post","http.put","http.delete","http.head","cache.invalidate"],"//%host%/ps/api/rpc":["activities.get","activities.create","activities.update","activities.delete","activities.supportedFields","appdata.get","appdata.create","appdata.update","appdata.delete","extensions.get","people.get","people.put","people.supportedFields","posts.get"]},"skins":{"properties":{"BG_POSITION":"","FONT_COLOR":"","BG_IMAGE":"","ANCHOR_COLOR":"","BG_REPEAT":"","BG_COLOR":""}},"core.io":{"jsonProxyUrl":"//%host%/gadgets/makeRequest","proxyUrl":"//www-fc-opensocial.googleusercontent.com/gadgets/proxy/refresh=%refresh%&container=%container%%rewriteMime%&gadget=%gadget%/%rawurl%"}});
</script><script>gadgets.Prefs.setMessages_({"GADGET_TITLE":"Members","GADGET_DESCRIPTION":"Let users join your site, create profiles, find other users, and invite friends to join."});gadgets.Prefs.setDefaultPrefs_({});gadgets.io.preloaded_=[];</script><style type="text/css">
      body { background: transparent; }
    </style><link href="gadgets-ltr.css" rel="stylesheet" type="text/css">
    
    
    
    <style>body { font-family: Arial, Helvetica, sans-serif; }
input, textarea, select { font-family: Arial, Helvetica, sans-serif; }
.fc-thumbnail img {height:32px;width:32px}
.fc-scroll-botnav, .fc-scroll, .fc-noscroll-botnav {height: 179px;}

.fc-members,.fc-members-canvas {border-color: transparent;
border-width:0px;}
.fc-userpage-itemlist,.fc-userpage-itemlist-canvas,.fc-botcap-short { border-top-color: transparent;
border-width:0px; }
.fc-topcap,.fc-topverb,.fc-friendreq,.fc-friendreqs,.fc-timeframe { border-bottom-color: transparent;
border-width:0px; }

.fc-userpic-caption {margin-left: 40px;}

.fc-topcap-color {background-color: transparent;}

.fc-botcap-short {background-color: transparent;}

.fc-botverb, .fc-topverb, .fc-members-header {background-color: transparent;}

.fc-botverb, .fc-topverb, .fc-members-header {background-color: transparent;}

.fc-topcap, .fc-botverb, .fc-topverb, .fc-botcap-short, .fc-header-sectitle, .fc-members-header {color: #4a4a4a;}

.fc-botverb,.fc-topcap .fc-menutriangle-down, .fc-topcap .fc-menutriangle-up,.fc-topcap a, .fc-topcap a:active, .fc-topcap a:visited,.fc-topcap-link a, .fc-topcap-link a:active, .fc-topcap-link a:visited,.fc-cap-link-big a, .fc-cap-link-big a:active,.fc-left-verb a, .fc-left-verb a:active, .fc-left-verb a:visited,.fc-right-verb a, .fc-right-verb a:active, .fc-right-verb a:visited,.fc-subtle-botcap a, .fc-subtle-botcap a:active, .fc-subtle-botcap a:visited.fc-left-verb-canvas a, .fc-left-verb-canvas a:active, .fc-left-verb-canvas a:visited,.fc-right-verb-canvas a, .fc-right-verb-canvas a:active, .fc-right-verb-canvas a:visited {color: #50d633;}

.fc-content-bg, .fc-subtle-botcap {background-color:transparent;}

.fc-content a, .fc-content a:active, .fc-content a:visited,
.fc-item-body a, .fc-item-body a:active, .fc-item-body a:visited,
.fc-see-all a, .fc-see-all a:active, .fc-see-all a:visited,
.fc-content-link a, .fc-content-link a:active, .fc-content-link a:visited,
.fc-content-canvas a, .fc-content-canvas a:active, .fc-content-canvas a:visited {color: #50d633;}

.fc-members,.fc-members-canvas {color:#4a4a4a;}

.fc-helpful,.fc-on-other-site,.fc-no-elements, .ot-activity-metadata {color:#6e6e6e;}

.fc-faded-link a, .fc-faded-link a:active, .fc-faded-link a:visited, .fc-faded-link-small a, .fc-faded-link-small a:active, .fc-faded-link-small a:visited {color: #50d633;}

.fc-sectitle {color: #000000;}
</style></head><body dir="ltr"><script type="text/javascript"> window.jsBaseUrl = 'http://www.google.com/friendconnect';window.jsGadget = 'members';window.latencySamplingRate = 0.0;var gfi_a=encodeURIComponent,gfi_b=Function,gfi_c=document,gfi_d="length",gfi_="prototype",gfi_e="call",gfi_f="apply",gfi_g="bind",gfi_h=this,gfi_i=function(a,c,b){a=a.split(".");b=b||gfi_h;a[0]in b||!b.execScript||b.execScript("var "+a[0]);for(var d;a[gfi_d]&&(d=a.shift());)a[gfi_d]||void 0===c?b=b[d]?b[d]:b[d]={}:b[d]=c};Math.random();
var gfi_j=function(a,c,b){return a[gfi_e][gfi_f](a[gfi_g],arguments)},gfi_k=function(a,c,b){if(!a)throw Error();if(2<arguments[gfi_d]){var d=Array[gfi_].slice[gfi_e](arguments,2);return function(){var b=Array[gfi_].slice[gfi_e](arguments);Array[gfi_].unshift[gfi_f](b,d);return a[gfi_f](c,b)}}return function(){return a[gfi_f](c,arguments)}},gfi_l=function(a,c,b){gfi_l=gfi_b[gfi_][gfi_g]&&-1!=gfi_b[gfi_][gfi_g].toString().indexOf("native code")?gfi_j:gfi_k;return gfi_l[gfi_f](null,arguments)},gfi_m=
function(a,c,b){gfi_i(a,c,b)},gfi_n=function(a,c,b){a[c]=b};gfi_b[gfi_].bind=gfi_b[gfi_][gfi_g]||function(a,c){if(1<arguments[gfi_d]){var b=Array[gfi_].slice[gfi_e](arguments,1);b.unshift(this,a);return gfi_l[gfi_f](null,b)}return gfi_l(this,a)};var gfi_o=function(){this.startTime=(new Date).getTime();this.ticks={}};gfi_o[gfi_].tick=function(a){this.ticks[a]=(new Date).getTime()};gfi_o[gfi_].a=function(a,c){this.ticks[a]=c};gfi_o[gfi_].report=function(){this.e().appendChild(this.d(window.jsGadget,gfi_c.location+""))};gfi_o[gfi_].e=function(){return gfi_c.getElementsByTagName("body")[0]};
gfi_o[gfi_].d=function(a,c){var b=gfi_c.createElement("img");b.setAttribute("height","1");b.setAttribute("width","1");b.setAttribute("src",window.jsBaseUrl+"/timing/clientTiming?jseGadget="+gfi_a(a)+"&jseLocation="+gfi_a(c)+"&ctStartTime="+gfi_a(this.startTime)+this.f(this.ticks));return b};gfi_o[gfi_].f=function(a){var c="",b=!0,d;for(d in a)c=c+(b?"":"|")+d+":"+a[d],b=!1;return"&ctTimings="+gfi_a(c)};var gfi_p=function(){this.b=[]};gfi_p[gfi_].c=function(a){this.b.push(a)};gfi_p[gfi_].tick=function(a){for(var c in this.b)this.b[c].tick(a)};gfi_p[gfi_].a=function(a,c){for(var b in this.b)this.b[b].a(a,c)};gfi_p[gfi_].report=function(){for(var a in this.b)this.b[a].report()};gfi_m("google.peoplesense.timing.TimingAdapter",gfi_p);gfi_m("google.peoplesense.timing.TimingAdapter.prototype.tick",gfi_p[gfi_].tick);gfi_m("google.peoplesense.timing.TimingAdapter.prototype.report",gfi_p[gfi_].report);
gfi_m("google.peoplesense.timing.TimingAdapter.prototype.supplementRecord",gfi_p[gfi_].a);var gfi_q=new gfi_p;gfi_m("fcTiming",gfi_q);Math.random()<window.latencySamplingRate&&gfi_q.c(new gfi_o);gfi_n(gfi_q,"tick",gfi_q.tick);gfi_n(gfi_q,"report",gfi_q.report);gfi_n(gfi_q,"supplementRecord",gfi_q.a);
</script><script type="text/javascript"> var prefs=new gadgets.Prefs();var suffix=prefs.getLang()+(prefs.getCountry()?'_'+prefs.getCountry():'');suffix=suffix.replace(/[^A-Za-z_]/g,'');document.write('<scr' + 'ipt src="http://www.google.com/friendconnect/script/mod_gadget_common__'+suffix+'.js?d=0.1-22c1fc1e_73bd0b97_5210c63e_9006a6ed_2b8a2ccb.7"></scr' + 'ipt>');document.write('<scr' + 'ipt src="http://www.google.com/friendconnect/script/mod_gadget_members__'+suffix+'.js?d=0.1-22c1fc1e_73bd0b97_5210c63e_9006a6ed_2b8a2ccb.7"></scr' + 'ipt>');</script><script src="mod_gadget_common__en_US.js"></script><script src="mod_gadget_members__en_US.js"></script>
    <div class="goog-app" id="peg" style=""><div class="fc-members" jsvars="friendReqs:(friendRequests &amp;&amp; friendRequests.size() &gt; 0)" jstcache="1">
      <div class="fc-topcap-color" jsvars="isSlimTop: hasMenuMode(&#39;profile&#39;) ||
                                    isBottomMenu();
                                   isSlimEmpty: hasMenuMode(&#39;members&#39;) &amp;&amp;
                                    isBottomMenu();
                                   isNoTop: hasMenuMode(&#39;members&#39;) &amp;&amp;
                                    !isBottomMenu();" jstcache="17">
        <div class="fc-topcap" jsdisplay="!isNoTop" jstcache="18">
          <div jsdisplay="viewer" jstcache="19" style="display: none;">
            <div jsdisplay="!isSlimTop" jstcache="21">
              <div transclude="zoomy-tpl" jstcache="24"></div>
              <div class="fc-userpic" jsselect="viewer" jstcache="22">
                <div transclude="member-thumb-tpl" jstcache="27"></div>
              </div>
            </div>
            <div class="fc-userpic-caption" jsselect="viewer" jstcache="22">
              <div class="fc-username" jscontent="getDisplayName()" jsdisplay="!isSlimTop" jstcache="25"></div>
              <div class="fc-members-options-menu" jsdisplay="!isSlimEmpty" jstcache="23"><div class="goog-menu" role="menu" aria-haspopup="true" tabindex="-1" style="display: none; -webkit-user-select: none;"><div class="goog-menuitem menuaction-settings" role="menuitem" id=":a" style="-webkit-user-select: none;"><div class="goog-menuitem-content" style="-webkit-user-select: none;">Site settings</div></div><div class="goog-menuitem menuaction-invite" role="menuitem" id=":b" style="-webkit-user-select: none;"><div class="goog-menuitem-content" style="-webkit-user-select: none;">Invite friends</div></div><div class="goog-menuitem menuaction-signout" role="menuitem" id=":c" style="-webkit-user-select: none;"><div class="goog-menuitem-content" style="-webkit-user-select: none;">Sign out</div></div><div class="goog-menuseparator fc-menuseparator-line" role="separator" id=":d" style="-webkit-user-select: none;"></div><div class="goog-menuitem menuaction-aboutfc" role="menuitem" id=":e" style="-webkit-user-select: none;"><div class="goog-menuitem-content" style="-webkit-user-select: none;"><span class="fc-small-menu-link" style="-webkit-user-select: none;">About Friend Connect</span></div></div></div><span class="fc-cap-link-big fc-menu-button"><a class="fc-cap-link-big">Options</a><span><img class="fc-menutriangle-down" src="dimage" align="top" width="8" height="4"><img class="fc-menutriangle-up" src="dimage(1)" align="top" width="8" height="4"></span></span></div>
            <div class="clear" jstcache="0"></div>
            </div>
          </div>
          <div jsdisplay="!viewer" jstcache="20">
            <div jsdisplay="!isSlimEmpty" jstcache="23">
              <div class="clear" jstcache="0"></div>
              <div style="float:right" jstcache="0">
        <a href="javascript:void(0);" jsvalues="$h:handle(this,&#39;gotoCanvasMode&#39;)" jstcache="28">
          <img border="0" height="12" jsvalues=".src:getZoomyImageUrl()" width="12" jstcache="29" src="dimage(2)">
        </a>
      </div>
              <div class="fc-button" jseval="generateSignInButton(this, MSG_JOIN, &#39;standard&#39;);" jstcache="30"><table class="gfc-button-base-v2 gfc-button" cellpadding="0" cellspacing="0" jstcache="0"><tbody class="" jstcache="0"><tr class="" jstcache="0"><td class="gfc-button-base-v2 gfc-button-1" jstcache="0"></td><td class="gfc-button-base-v2 gfc-button-2" jstcache="0">Join this site</td><td class="gfc-button-base-v2 gfc-button-3" jstcache="0"></td></tr></tbody></table><div class="gfc-footer-msg" jstcache="0">with Google Friend Connect</div></div>
              <div class="clear" jstcache="0"></div>
            </div>
          </div>
        </div>
      </div>
      <div class="fc-waitingmsg" jsdisplay="showWaitingMessages" jstcache="31" style="display: none;">
      <div jstcache="0">
        <table jstcache="0"><tbody jstcache="0"><tr jstcache="0">
            <td valign="top" jstcache="0"><img src="smallEnvelope.jpg" jstcache="0"></td>
            <td jstcache="0">
              <div jscontent="MSG_NUM_WAITING_MESSAGES" jstcache="32"></div>
              <div jstcache="0"><a href="javascript:void(0);" jscontent="MSG_VIEW_AND_CONFIGURE_MESSAGING" jseval="handle(this,&#39;acceptMessages&#39;)" jstcache="33">
                </a>
              </div>
            </td>
        </tr></tbody></table>
      </div>
    </div>
      <div class="fc-promo-main" jsdisplay="promoHtml" jstcache="34" style="display: none;">
      <div jseval="insertHtml(this, promoHtml);" jstcache="35"></div>
    </div>
      <div jstcache="0">
      <div jsdisplay="showInvitedBy()" jstcache="36" style="display: none;">
        <div jsselect="invitedBy" jsvalues=".className:(isCanvasMode() ? &#39;fc-invitedby-canvas&#39; : &#39;fc-invitedby&#39;)" jstcache="37">
          <div class="fc-userpic" jstcache="0">
            <div transclude="member-thumb-tpl" jstcache="27"></div>
          </div>
          <div class="fc-invitedby-text" jscontent="MSG_INVITED_YOU" jstcache="38"></div>
          <div class="fc-invitedby-link-container" jstcache="0"><a class="fc-invitedby-link" href="javascript:void(0);" jscontent="MSG_VIEW_INVITER_PROFILE" jsvalues="$h:handle(this,&#39;viewProfile&#39;)" jstcache="39"></a></div>
        </div>
      </div>
    </div>
      <div jstcache="0">
      <div jsdisplay="$this.size()" jsselect="friendRequests" jsvalues=".className:(isCanvasMode() ? &#39;fc-friendreqs-canvas&#39; : &#39;fc-friendreqs&#39;)" jstcache="40" jsinstance="*0" style="display: none;">
        <div class="fc-userpic" jsselect="asArray()[0].getField(google.FriendConnect.Invite.Field.INVITER)" jstcache="41">
          <div transclude="member-thumb-tpl" jstcache="27"></div>
        </div>
        <a class="fc-friendreqs-link" href="javascript:void(0);" jscontent="MSG_NEW_FRIEND_REQUESTS" jsvalues="$h:handle(this,&#39;viewFriendRequests&#39;)" jstcache="42"></a>
      </div>
    </div>
      <div jsvars="dropARow:(friendReqs || showInvitedBy() || showWaitingMessages || promoHtml)" jstcache="7">
        <div jsvalues=".className:(dropARow ? &#39;fc-content-bg fc-noscroll-friendreq&#39; : &#39;fc-content-bg fc-noscroll&#39;)" jstcache="9" class="fc-content-bg fc-noscroll">
          <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-canvas fc-minheight&#39; : &#39;fc-content&#39;)" style="padding-bottom:0px" jstcache="10" class="fc-content">
            <div class="fc-no-elements" jsdisplay="!members || !members.getTotalSize()" jstcache="11" style="display: none;">
              <div jscontent="MSG_NO_SITE_MEMBERS" jstcache="14">
              </div>
              <a href="javascript:void(0);" jscontent="MSG_BE_THE_FIRST" jsvalues="$h:handle(this,&#39;signin&#39;)" jstcache="15"></a>
            </div>
            <div jsselect="members" jsvars="label:MSG_SITE_MEMBERS;showAllHandler:showAllMembers;numPreviewItems:numPreviewMembers(dropARow);showBlockedFilter:false;needsZoomyForNoTop:hasMenuMode(&#39;members&#39;)" jstcache="12" jsinstance="*0">
              <div class="fc-mem-grid" jsdisplay="$this &amp;&amp; $this.size() &amp;&amp; numPreviewItems &gt; 0" jstcache="43">
        <div jsdisplay="needsZoomyForNoTop" jstcache="44" style="display: none;">
          <div transclude="zoomy-tpl" jstcache="24"></div>
        </div>
      <div jsvalues=".className:(isCanvasMode() ? &#39;fc-sectitle fc-sectitle-canvas&#39; : &#39;fc-sectitle&#39;)" jstcache="45" class="fc-sectitle">
        <span jscontent="label" jstcache="47">Members</span>&nbsp;(<span jscontent="$this.getTotalSize() || &#39;0&#39;" jstcache="48">2</span>)
        <a class="fc-see-all" href="javascript:void(0);" jscontent="MSG_MORE" jsdisplay="$this.getTotalSize() &gt; numPreviewItems" jsvalues="$h:handle(this,showAllHandler)" jstcache="49" style="display: none;"></a>
        <span jsdisplay="showBlockedFilter" jstcache="50" style="display: none;">
          <a class="fc-see-all" href="javascript:void(0);" jscontent="MSG_SHOW_BLOCKED" jsvalues="$h:handle(this,showBlockedMembers)" jstcache="51"></a>
        </span>
      </div>
      <div class="clear" jstcache="0"></div>
      <div class="fc-thumbnail" jsselect="safeSlice($this.asArray(), 0, numPreviewItems)" jstcache="46" jsinstance="0">
        <img jsvalues=".src:getThumbnail($this,32);$h:handle(this,&#39;viewProfile&#39;);title:getDisplayName()" style="cursor:pointer;" jstcache="52" title="Rahul Jaiswal" src="_399JWjYKLG4FR5Won9KiaPXhqwLL_MF2n_-4tSUr_7DPp14wvsXWOTb6vd9NGtzgLZ8kAAlslt_v-4I2MO10xDb-bawk64SVvTA9PF83ngYi5xS35tuZPfVXTeTI4ciRbofjDnHEmOpPizneY">
      </div><div class="fc-thumbnail" jsselect="safeSlice($this.asArray(), 0, numPreviewItems)" jstcache="46" jsinstance="*1">
        <img jsvalues=".src:getThumbnail($this,32);$h:handle(this,&#39;viewProfile&#39;);title:getDisplayName()" style="cursor:pointer;" jstcache="52" title="yd4" src="NoPictureDark32.jpg">
      </div>
      <div class="clear" jstcache="0"></div>
    </div>
            </div>
            <div jsselect="friends" jsvars="label:MSG_YOUR_FRIENDS;showAllHandler:showAllViewerFriends;numPreviewItems:numPreviewFriends(dropARow);showBlockedFilter:false;needsZoomyForNoTop:false" jstcache="13" jsinstance="*0" style="display: none;">
              <div transclude="faces-preview-tpl" jstcache="16">
              </div>
            </div>
          </div>
        </div>
      </div>
    <div class="fc-subtle-botcap" jstcache="0">
      <div jsdisplay="viewer != null" jstcache="53" style="display: none;">
        <span class="fc-faded-link-small" jstcache="0">
          <a href="javascript:void(0);" jscontent="MSG_INVITE_YOUR_FRIENDS" jsvalues="$h:handle(this,&#39;invite&#39;)" jstcache="56"></a>
        </span>
      </div>
      <div jsdisplay="viewer == null" jstcache="54">
        <span class="fc-botcap-text" jscontent="MSG_ALREADY_MEMBER" jstcache="55">Already a member?</span>
        <span class="fc-content-link" jstcache="0">
          <a href="javascript:void(0);" jscontent="MSG_SIGN_IN" jsvalues="$h:handle(this,&#39;signin&#39;)" jstcache="57">Sign in</a>
        </span>
      </div>
    </div>
    </div></div>

    <!-- place holder for templates -->
    <div style="display:none">
      <!-- template for a link that browses to a member's profile. $this is an opensocial.Person. -->
      <img id="member-thumb-tpl" jsvalues=".src:getThumbnail($this,32);$h:handle(this,&#39;viewProfile&#39;);title:getDisplayName()" style="cursor:pointer;" jstcache="52">
      <img id="member-thumb-54-tpl" jsvalues=".src:getThumbnail($this,54);$h:handle(this,&#39;viewProfile&#39;);title:getDisplayName()" style="cursor:pointer;">
      <img height="65" id="member-thumb-65-tpl" jsvalues=".src:getThumbnail($this,65);$h:handle(this,&#39;viewProfile&#39;);title:getDisplayName()" style="cursor:pointer;" width="65">

      <img id="member-thumb-large-tpl" jsvalues=".src:getThumbnail($this,45);$h:handle(this,&#39;viewProfile&#39;);title:getDisplayName()" style="cursor:pointer;">

      <div id="zoomy-tpl" style="float:right" jstcache="0">
        <a href="javascript:void(0);" jsvalues="$h:handle(this,&#39;gotoCanvasMode&#39;)" jstcache="28">
          <img border="0" height="12" jsvalues=".src:getZoomyImageUrl()" width="12" jstcache="29">
        </a>
      </div>

      <div id="zoomy-profile-tpl" style="float:right">
        <!--
        <a href="javascript:void(0);" jsvalues="$h:handle(this,'gotoProfileMode')">
          <img border="0" jsvalues=".src:getZoomyImageUrl()" width="12" height="12">
        </a> -->
      </div>

      <div class="fc-member-large-thumb" id="member-thumb-large-tpl:canvas">
        <img class="fc-member-large-thumb-img" height="45" jsvalues="src:getThumbnail($this,45);$h:handle(this,&#39;viewProfile&#39;);title:getDisplayName()" width="45">
        <div class="fc-member-large-thumb-name" jscontent="getDisplayName()"></div>
      </div>

      <div id="item-tpl" jsvalues=".className:(isCanvasMode() ? &#39;fc-item fc-item-canvas&#39; : &#39;fc-item&#39;)">
        <div class="fc-item-body" style="padding-left:20px">
          <img align="top" height="16" jsvalues="src:icon" style="margin-left:-20px;margin-right:2px; position:relative;" width="16">
          <a jscontent="title" jsdisplay="title" jsvalues="href:link;.className:(isCanvasMode() ? &#39;fc-item-link fc-item-link-canvas&#39; : &#39;fc-item-link&#39;)" target="_blank"></a>
          <span jsvalues=".innerHTML:typeof(innerHTML) != &#39;undefined&#39; ? innerHTML : &#39;&#39;"></span>
          <span class="fc-item-body" jsdisplay="body"> - <span jsvalues=".innerHTML:typeof(body) != &#39;undefined&#39; ? body : &#39;&#39;"></span></span>
          <span class="fc-on-other-site" jsdisplay="siteTitle">
            &nbsp;<img class="delete-button" jsdisplay="typeof($this.deleteHandler) != &#39;undefined&#39; &amp;&amp; $this.deleteHandler != null" jsvalues="$h:handle(this, $this.deleteHandler);alt:MSG_DELETE_THIS;title:MSG_DELETE_THIS" src="trash.gif">
          </span>
        </div>
        <div class="clear"></div>
      </div>

      <div id="profile-extension-tpl" jsvalues=".className:(isCanvasMode() ? &#39;fc-userpage-itemlist fc-userpage-itemlist-canvas&#39; : &#39;fc-userpage-itemlist&#39;)">
        <span class="fc-sectitle">
          <span jscontent="title"></span>
        </span>
        <div jsselect="body">
          <div class="fc-about-me" jscontent="$this"></div>
        </div>
      </div>


      <!-- Top panel in the members gadget -->
      <div class="fc-topcap-color" id="topcap-tpl" jsvars="isSlimTop: hasMenuMode(&#39;profile&#39;) ||
                                    isBottomMenu();
                                   isSlimEmpty: hasMenuMode(&#39;members&#39;) &amp;&amp;
                                    isBottomMenu();
                                   isNoTop: hasMenuMode(&#39;members&#39;) &amp;&amp;
                                    !isBottomMenu();" jstcache="17">
        <div class="fc-topcap" jsdisplay="!isNoTop" jstcache="18">
          <div jsdisplay="viewer" jstcache="19">
            <div jsdisplay="!isSlimTop" jstcache="21">
              <div transclude="zoomy-tpl" jstcache="24"></div>
              <div class="fc-userpic" jsselect="viewer" jstcache="22">
                <div transclude="member-thumb-tpl" jstcache="27"></div>
              </div>
            </div>
            <div class="fc-userpic-caption" jsselect="viewer" jstcache="22">
              <div class="fc-username" jscontent="getDisplayName()" jsdisplay="!isSlimTop" jstcache="25"></div>
              <div class="fc-members-options-menu" jsdisplay="!isSlimEmpty" jstcache="23">
              </div>
            <div class="clear" jstcache="0"></div>
            </div>
          </div>
          <div jsdisplay="!viewer" jstcache="20">
            <div jsdisplay="!isSlimEmpty" jstcache="23">
              <div class="clear" jstcache="0"></div>
              <div transclude="zoomy-tpl" jstcache="24"></div>
              <div transclude="signin-button-tpl" jstcache="26"></div>
              <div class="clear" jstcache="0"></div>
            </div>
          </div>
        </div>
      </div>

      <div class="fc-topcap" id="topcap-nav-tpl">
        <div jsdisplay="viewer">
          <div class="fc-userpic" jsselect="viewer">
            <div transclude="member-thumb-tpl"></div>
          </div>
          <div class="fc-userpic-caption" jsselect="viewer">
            <div class="fc-username" jscontent="getDisplayName()"></div>
            <div>
              <span id="nav-links-tpl" style="font-weight:bold">
                <a class="fc-topcap-link" href="javascript:void(0);" jscontent="MSG_BACK_TO_TOP" jsvalues="$h:handle(this,&#39;goBackToHome&#39;)"></a>&nbsp;|&nbsp;<a class="fc-topcap-link" href="javascript:void(0);" jscontent="MSG_BACK" jsvalues="$h:handle(this,&#39;goBack&#39;)"></a>
              </span>
            </div>
          </div>
        </div>
        <div jsdisplay="!viewer" jsvars="buttonLabel:MSG_JOIN;buttonHandler:signin">
          <div transclude="zoomy-tpl"></div>
          <div transclude="button-tpl"></div>
          <div transclude="nav-links-tpl"></div>
        </div>
      </div>

      <div id="topcap-nav-tpl:canvas">
        <div transclude="top-paging-tpl"></div>
      </div>

      <div id="topcap-nav-home-tpl">
        <div class="fc-topverb" style="border-bottom:none">
          <span jsvalues=".className:(isCanvasMode() ? &#39;fc-left-verb fc-left-verb-canvas&#39; : &#39;fc-left-verb&#39;)">
            <span transclude="view-my-profile-tpl"></span>
          </span>
          <div transclude="zoomy-profile-tpl"></div>
        </div>
      </div>

    <div class="fc-button" id="signin-button-tpl" jseval="generateSignInButton(this, MSG_JOIN, &#39;standard&#39;);" jstcache="30">
    </div>


    <div class="fc-button" id="button-tpl" jseval="handle(this,buttonHandler);decorateButton(this);">
      <span jscontent="buttonLabel" style="font-size:14px; font-weight:bold;"></span>
    </div>

    <div class="fc-members" id="profile-tpl">
      <div transclude="topcap-tpl"></div>
      <div class="fc-scroll-botnav fc-content-bg">
        <div class="fc-content fc-minheight fc-profile">
          <div jsselect="profile">
            <div transclude="profile-summary-tpl"></div>
            <div jsselect="person" jsvars="aboutMe:getField(opensocial.Person.Field.ABOUT_ME)">
              <div class="fc-userpage-itemlist" jsdisplay="aboutMe != null &amp;&amp; aboutMe.length &gt; 0">
                <span class="fc-sectitle">
                  <span jscontent="MSG_ABOUT_ME"></span>
                </span>
                <div class="fc-about-me" jscontent="aboutMe">
                </div>
              </div>
            </div>
            <div jsselect="profileExtensions">
              <div transclude="profile-extension-tpl"></div>
            </div>
            <div jsdisplay="size() &gt; 0" jsselect="links" jsvars="numPreviewItems:3;heading:MSG_LINKS;items:$this;showAllHandler:showAllLinks;transform:transformLink">
              <div transclude="item-list-preview-tpl"></div>
            </div>
            <div jsdisplay="size() &gt; 0" jsselect="sites" jsvars="numPreviewItems:3;heading:MSG_SITES;items:$this;showAllHandler:showAllSites;transform:transformSite">
              <div transclude="item-list-preview-tpl"></div>
            </div>
            <div class="fc-userpage-itemlist" jsdisplay="size() &gt; 0" jsselect="friends" jsvars="label:MSG_PROFILE_FRIENDS;showAllHandler:showAllProfileFriends;numPreviewItems:facesPerRow">
              <div transclude="faces-preview-tpl">
              </div>
            </div>
            <div jsdisplay="size() &gt; 0" jsselect="activities" jsvars="numPreviewItems:2;heading:MSG_ACTIVITIES;items:$this;showAllHandler:showAllActivities;transform:transformActivity">
              <div transclude="item-list-preview-tpl"></div>
            </div>
          </div>
        </div>
      </div>
      <div transclude="bottom-paging-tpl"></div>
    </div>

    <div class="fc-members-canvas" id="profile-tpl:canvas">
      <div jsdisplay="!hideNavigation()"> <div transclude="top-paging-tpl"></div></div>
      <div class="fc-content-canvas fc-content-bg fc-minheight">
        <div jsselect="profile" style="position:relative">
          <div>
            <div transclude="profile-summary-tpl"></div>
            <div jsselect="person" jsvars="aboutMe:getField(opensocial.Person.Field.ABOUT_ME)">
              <div class="fc-userpage-itemlist-canvas" jsdisplay="aboutMe &amp;&amp; aboutMe.length &gt; 0">
                <span class="fc-sectitle fc-sectitle-canvas">
                  <span jscontent="MSG_ABOUT_ME"></span>
                </span>
                <div class="fc-about-me" jscontent="aboutMe">
                </div>
              </div>
            </div>

            <div jsselect="profileExtensions">
              <div transclude="profile-extension-tpl"></div>
            </div>
            <div jsdisplay="size() &gt; 0" jsselect="links" jsvars="numPreviewItems:5;heading:MSG_LINKS;items:$this;showAllHandler:showAllLinks;transform:transformLink">
              <div transclude="item-list-preview-tpl"></div>
            </div>
            <div jsdisplay="size() &gt; 0" jsselect="sites" jsvars="numPreviewItems:5;heading:MSG_SITES;items:$this;showAllHandler:showAllSites;transform:transformSite">
              <div transclude="item-list-preview-tpl"></div>
            </div>
            <div class="fc-userpage-itemlist" jsdisplay="size() &gt; 0" jsselect="friends" jsvars="label:MSG_PROFILE_FRIENDS;showAllHandler:showAllProfileFriends;numPreviewItems:16">
              <div transclude="faces-preview-tpl"></div>
            </div>
            <div jsdisplay="size() &gt; 0" jsselect="activities" jsvars="numPreviewItems:2;heading:MSG_ACTIVITIES;items:$this;showAllHandler:showAllActivities;transform:transformActivity">
              <div transclude="item-list-preview-tpl"></div>
            </div>
          </div>
          <div class="clear"> </div>
        </div>
      </div>
      <div jsdisplay="!hideNavigation()"> <div transclude="bottom-paging-tpl"></div></div>
    </div>

    <div class="fc-userpage-itemlist" id="item-list-preview-tpl">
      <span class="fc-sectitle" jscontent="heading"></span>
      <span class="fc-userpage-itemlist-paging">
        <a class="fc-see-all" href="javascript:void(0);" jscontent="MSG_MORE" jsdisplay="items.getTotalSize() &gt; numPreviewItems" jsvalues="$h:handle(this,showAllHandler)"></a>
      </span>
      <div class="fc-itemlist-table" jsselect="map(items, transform).slice(0, numPreviewItems)">
        <div transclude="item-tpl"></div>
      </div>
    </div>

    <div class="fc-userpage-itemlist-canvas" id="item-list-preview-tpl:canvas">
      <span class="fc-sectitle fc-sectitle-canvas" jscontent="heading" style="font-size:14px"></span>&nbsp;
      <span class="fc-userpage-itemlist-paging">
        <a class="fc-see-all" href="javascript:void(0);" jscontent="MSG_MORE" jsdisplay="items.getTotalSize() &gt; numPreviewItems" jsvalues="$h:handle(this,showAllHandler)"></a>
      </span>
      <div class="fc-itemlist-table" jsselect="map(items, transform).slice(0, numPreviewItems)">
        <div transclude="item-tpl"></div>
      </div>
    </div>

    <div id="profile-summary-tpl">
      <div jsselect="person">
        <span class="fc-userpage-pic">
          <div jsdisplay="!isCanvasMode()">
            <div transclude="member-thumb-54-tpl"></div>
          </div>
          <div jsdisplay="isCanvasMode()">
            <div transclude="member-thumb-65-tpl"></div>
          </div>
        </span>
      </div>
      <div class="fc-userpic-caption">
        <div jsselect="person">
          <a jsdisplay="externalProfileUrl" jsvalues="href:externalProfileUrl" target="_blank">
            <div jscontent="getDisplayName()" jsvalues=".className:(isCanvasMode() ? &#39;fc-userpage-name fc-userpage-name-canvas&#39; : &#39;fc-userpage-name&#39;)"></div>
          </a>
          <span jsdisplay="!externalProfileUrl || typeof(externalProfileUrl)==undefined">
            <div jscontent="getDisplayName()" jsvalues=".className:(isCanvasMode() ? &#39;fc-userpage-name fc-userpage-name-canvas&#39; : &#39;fc-userpage-name&#39;)"></div>
          </span>
        </div>
        <div style="padding-bottom:2px">
          <div jsdisplay="typeof(isFriend) != &#39;undefined&#39; &amp;&amp; !isFriend &amp;&amp; typeof(isInvited) == &#39;undefined&#39;">
            <a href="javascript:void(0);" jsselect="person" jsvalues="$h:handle(this,&#39;goToInviteFriend&#39;);.className:(isCanvasMode() ? &#39;fc-default-link fc-default-link-canvas&#39; : &#39;fc-default-link&#39;)">
              <img class="fc-plus-pic" src="plus.gif">
              <span jscontent="MSG_ADD_AS_FRIEND"></span>
            </a>
          </div>
          <div jscontent="MSG_IS_INVITED" jsdisplay="typeof(isInvited) != &#39;undefined&#39; &amp;&amp; isInvited">
          </div>
          <div jscontent="MSG_IS_FRIEND" jsdisplay="isFriend">
          </div>
        </div>
        <div jsdisplay="isMessagingEnabled &amp;&amp; canSendMessage">
          <a href="javascript:void(0);" jsselect="person" jsvalues="$h:handle(this,&#39;sendMessageDialog&#39;);.className:(isCanvasMode() ? &#39;fc-default-link fc-default-link-canvas&#39; : &#39;fc-default-link&#39;)">
            <img class="fc-envelope-pic" src="smallEnvelope.jpg">
              <span jscontent="MSG_SEND_MESSAGE"></span>
            </a>
        </div>
        <div jsdisplay="isViewingSelf &amp;&amp; communityHasProfile">
          <a class="fc-faded-link" href="javascript:void(0);" jsvalues="$h:handle(this,&#39;goToEditProfile&#39;)">
            <img class="fc-edit-pic" src="fc-edit.png">
            <span jscontent="MSG_EDIT_PROFILE"></span>
          </a>
        </div>

        <div jsdisplay="isViewerAdmin">
          <div jsdisplay="!isAdmin &amp;&amp; (typeof(isBlocked) != &#39;undefined&#39; &amp;&amp; !isBlocked)">
            <a class="fc-faded-link" href="javascript:void(0);" jsselect="person" jsvalues="$h:handle(this,&#39;goToBlockMember&#39;)">
              <img class="fc-do-not-enter-pic" src="do-not-enter.gif">
              <span jscontent="MSG_BLOCK_USER"></span>
            </a>
          </div>
          <div jsdisplay="isBlocked">
            <a class="fc-faded-link-small" href="javascript:void(0);" jsselect="person" jsvalues="$h:handle(this,&#39;unblockUser&#39;)">
              <img class="fc-plus-pic" src="unblock.gif">
              <span jscontent="MSG_UNBLOCK_USER"></span>
            </a>
          </div>
          <div class="fc-profile-summary" jscontent="MSG_USER_IS_ADMIN" jsdisplay="isAdmin"></div>
        </div>
      </div>
      <div class="clear">
      </div>
    </div>

    <div class="fc-members" id="activities-tpl" jsvars="label:MSG_ALL_ACTIVITIES; previous:MSG_NEWER;next:MSG_OLDER;items:profile.activities;transform:transformActivity;nextHandler:nextActivities;prevHandler:prevActivities">
      <div transclude="items-tpl">
      </div>
    </div>

    <div class="fc-members" id="members-page-tpl" jsvars="label:MSG_ALL_SITE_MEMBERS;items:members;nextHandler:nextMembers;prevHandler:previousMembers">
      <div transclude="faces-page-tpl"></div>
    </div>

    <div class="fc-members" id="blocked-members-page-tpl" jsvars="label:MSG_ALL_BLOCKED_MEMBERS;items:blockedMembers;nextHandler:nextBlockedMembers;prevHandler:previousBlockedMembers;noneMessage:MSG_NO_BLOCKED_MEMBERS;showAllFilter:true">
      <div transclude="faces-page-tpl"></div>
    </div>

    <div class="fc-members" id="profile-friends-page-tpl" jsvars="label:MSG_ALL_PROFILE_FRIENDS;items:profile.friends;nextHandler:nextProfileFriends;prevHandler:previousProfileFriends">
      <div transclude="faces-page-tpl"></div>
    </div>

    <div class="fc-members" id="viewer-friends-page-tpl" jsvars="label:MSG_ALL_YOUR_FRIENDS;items:friends;nextHandler:nextViewerFriends;prevHandler:previousViewerFriends">
      <div transclude="faces-page-tpl"></div>
    </div>

    <div class="fc-members" id="faces-page-tpl" jsvars="previous:MSG_PREVIOUS;next:MSG_NEXT">
      <div transclude="topcap-tpl"></div>
      <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-bg&#39; : &#39;fc-noscroll-botnav fc-content-bg&#39;)">
        <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-canvas fc-minheight&#39; : &#39;fc-content&#39;)">
          <div class="fc-mem-grid" style="padding-bottom:0">
            <div class="clear"></div>
            <div jsvalues=".className:(isCanvasMode() ? &#39;fc-sectitle fc-sectitle-canvas&#39; : &#39;fc-sectitle&#39;)">
              <span class="fc-right-verb" jsdisplay="showAllFilter"><a href="javascript:void(0);" jscontent="MSG_SHOW_ALL" jsvalues="$h:handle(this,showUnblockedMembers)"></a></span>
              <span jscontent="label"></span>&nbsp;(<span jscontent="items.getTotalSize() || &#39;0&#39;"></span>)
            </div>
            <div class="clear"></div>
            <div class="fc-no-elements" jscontent="noneMessage" jsdisplay="!items.getTotalSize() &amp;&amp; noneMessage">
            </div>
            <div class="fc-thumbnail" jsselect="items.asArray()">
              <div transclude="member-thumb-large-tpl"></div>
            </div>
            <div class="clear"></div>
          </div>
        </div>
      </div>
      <div transclude="bottom-paging-tpl">
      </div>
    </div>

    <div class="fc-members" id="faces-page-tpl:canvas" jsvars="previous:MSG_PREVIOUS;next:MSG_NEXT">
      <div transclude="top-paging-tpl"></div>
      <div class="fc-minheight fc-content-bg">
        <div class="fc-members-header" style="border-top:none">
          <span class="fc-right-verb" jsdisplay="showAllFilter"><a href="javascript:void(0);" jscontent="MSG_SHOW_ALL" jsvalues="$h:handle(this,showUnblockedMembers)"></a></span>
          <span class="fc-header-sectitle" jscontent="label"></span>&nbsp;(<span jscontent="items.getTotalSize() || &#39;0&#39;"></span>)
        </div>
        <div class="fc-mem-grid" style="padding-bottom:0">
          <div class="fc-no-elements" jscontent="noneMessage" jsdisplay="!items.getTotalSize() &amp;&amp; noneMessage">
          </div>
          <div class="fc-thumbnail" jsselect="items.asArray()">
            <div transclude="member-thumb-large-tpl"></div>
          </div>
          <div class="clear"></div>
        </div>
      </div>
      <div transclude="bottom-paging-tpl"></div>
    </div>

    <div class="fc-members" id="links-tpl" jsvars="label:MSG_ALL_LINKS;previous:MSG_PREVIOUS;next:MSG_NEXT;items:profile.links;transform:transformLink;nextHandler:nextLinks;prevHandler:previousLinks">
      <div transclude="items-tpl">
      </div>
    </div>

    <div class="fc-members" id="sites-tpl" jsvars="label:MSG_ALL_SITES;previous:MSG_PREVIOUS;next:MSG_NEXT;items:profile.sites;transform:transformSite;nextHandler:nextSites;prevHandler:previousSites">
      <div transclude="items-tpl">
      </div>
    </div>

    <div class="fc-members" id="items-tpl">
      <div jsdisplay="isCanvasMode()">
        <div transclude="topcap-nav-tpl"></div>
      </div>
      <div jsdisplay="!isCanvasMode()">
        <div transclude="topcap-tpl"></div>
      </div>
      <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-bg&#39; : &#39;fc-scroll-botnav fc-content-bg&#39;)">
        <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-canvas fc-minheight&#39; : &#39;fc-content&#39;)">
          <div jsselect="profile">
            <div transclude="profile-summary-tpl">
            </div>
            <div class="fc-userpage-itemlist">
              <span jscontent="label" jsvalues=".className:(isCanvasMode() ? &#39;fc-sectitle fc-sectitle-canvas&#39; : &#39;fc-sectitle&#39;)"></span>&nbsp;
              
              <div class="fc-itemlist-table" jsselect="map(items, transform)">
                <div transclude="item-tpl"></div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div transclude="bottom-paging-tpl">
      </div>
    </div>

    <div class="fc-members" id="invite-friend-tpl" jsvars="sendHandler:sendInvite">
      <div transclude="topcap-tpl"></div>
      <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-bg&#39; : &#39;fc-scroll-botnav fc-content-bg&#39;)">
        <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-canvas fc-minheight&#39; : &#39;fc-content&#39;)">
          <div jsselect="profile.person">
            <span class="fc-userpage-pic">
              <div transclude="member-thumb-54-tpl"></div>
            </span>
            <div class="fc-userpic-caption">
              <div class="fc-userpage-name" jscontent="getDisplayName()"></div>
            </div>
            <div class="fc-message">
              <div jscontent="MSG_INVITATION" jsvalues=".className:(isCanvasMode() ? &#39;fc-sectitle fc-sectitle-canvas&#39; : &#39;fc-sectitle&#39;)"></div>
              <textarea class="fc-textarea" jsvalues="id:&#39;inviteMessage&#39;" name="textarea" rows="2"></textarea>
              <div class="fc-helpful" jscontent="MSG_HELP_FRIENDINVITE"></div>
              <div jsvars="buttonHandler:sendHandler;buttonLabel:MSG_SEND">
                <div transclude="button-tpl"></div>
              </div>
            </div>
          </div>
        </div>
      </div>
      <div transclude="bottom-paging-tpl">
      </div>
    </div>

    <div class="fc-members" id="block-member-tpl" jsvars="sendHandler:blockMember">
      <div jsdisplay="isCanvasMode()">
        <div transclude="topcap-nav-tpl"></div>
      </div>
      <div jsdisplay="!isCanvasMode()">
        <div transclude="topcap-tpl"></div>
      </div>
      <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-bg&#39; : &#39;fc-scroll-botnav fc-content-bg&#39;)">
        <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-canvas fc-minheight&#39; : &#39;fc-content&#39;)">
          <div jsselect="profile.person">
            <span class="fc-userpage-pic">
              <div transclude="member-thumb-54-tpl"></div>
            </span>
            <div class="fc-userpic-caption">
              <div class="fc-userpage-name" jscontent="getDisplayName()"></div>
            </div>
            <div class="fc-message">
              <div jscontent="MSG_HELP_BLOCKMEMBER" jsvalues=".className:(isCanvasMode()
                     ? &#39;fc-blocked-helpful-msg-canvas&#39;
                     : &#39;fc-blocked-helpful-msg-gadget&#39;)">
              </div>
              <span jsvars="buttonHandler:sendHandler;buttonLabel:MSG_BLOCK">
                <div transclude="button-tpl"></div>
              </span>
              &nbsp; &nbsp;
              <a href="javascript:void(0);" jscontent="MSG_CANCEL" jsvalues="$h:handle(this,&#39;goBack&#39;);.className:(isCanvasMode() ? &#39;fc-default-link fc-default-link-canvas&#39; : &#39;fc-default-link&#39;)">
              </a>
            </div>
          </div>
        </div>
      </div>
      <div transclude="bottom-paging-tpl">
      </div>
    </div>

    <span class="fc-send" id="send-button-tpl" jscontent="MSG_SEND" jsvalues="$h:handle(this,sendHandler)"></span>

    <div class="fc-botcap-short" id="bottom-paging-tpl">
      <div transclude="paging-tpl"></div>
    </div>

    <div class="fc-botcap-short fc-botcap-short-canvas" id="bottom-paging-tpl:canvas">
      <div transclude="paging-tpl"></div>
    </div>

    <div class="fc-topverb" id="top-paging-tpl">
      <div transclude="paging-tpl"></div>
    </div>

    <div class="fc-topverb fc-topverb-canvas" id="top-paging-tpl:canvas">
      <div transclude="paging-tpl"></div>
    </div>

    <a href="javascript:void(0);" id="goback-tpl" jscontent="MSG_BACK" jsdisplay="!isHome()" jsvalues="$h:handle(this,&#39;goBack&#39;)"></a>

    <a href="javascript:void(0);" id="gobacktop-tpl" jscontent="MSG_BACK_TO_TOP" jsdisplay="!hasMenuMode(&#39;profile&#39;)" jsvalues="$h:handle(this,&#39;goBackToHome&#39;)"></a>

    <a href="javascript:void(0);" id="view-my-profile-tpl" jscontent="MSG_VIEW_MY_PROFILE" jsdisplay="viewer.getId() &amp;&amp; isCanvasMode()" jsvalues="$h:handle(this,&#39;goToViewerProfile&#39;)"></a>

    <div id="paging-tpl">
      <span jsvalues=".className:(isCanvasMode() ? &#39;fc-left-verb fc-left-verb-canvas&#39; : &#39;fc-left-verb&#39;)">
        <span transclude="gobacktop-tpl"></span>&nbsp;&nbsp;
        <span transclude="goback-tpl"></span>&nbsp;&nbsp;
      </span>
      <span jsselect="items" jsvalues=".className:(isCanvasMode() ? &#39;fc-right-verb fc-right-verb-canvas&#39; : &#39;fc-right-verb&#39;)" style="margin-right:4px;">
        <a href="javascript:void(0);" jscontent="previous" jsdisplay="$this.getOffset() &gt; 0" jsvalues="$h:handle(this,prevHandler)" style="padding-right:4px;"></a>
        <span jscontent="previous" jsdisplay="$this.getOffset() == 0" style="visibility:hidden;padding-right:4px;"></span>
        <a href="javascript:void(0);" jscontent="next" jsdisplay="$this.getTotalSize() &gt; ($this.size() + $this.getOffset())" jsvalues="$h:handle(this,nextHandler)"></a>
        <span jscontent="next" jsdisplay="$this.getTotalSize() &lt;= ($this.size() + $this.getOffset())" style="visibility:hidden"></span>
      </span>&nbsp;
      <div class="clear"></div>
    </div>

    <div class="fc-waitingmsg" id="waiting-messages-tpl" jsdisplay="showWaitingMessages" jstcache="31">
      <div jstcache="0">
        <table jstcache="0"><tbody jstcache="0"><tr jstcache="0">
            <td valign="top" jstcache="0"><img src="smallEnvelope.jpg" jstcache="0"></td>
            <td jstcache="0">
              <div jscontent="MSG_NUM_WAITING_MESSAGES" jstcache="32"></div>
              <div jstcache="0"><a href="javascript:void(0);" jscontent="MSG_VIEW_AND_CONFIGURE_MESSAGING" jseval="handle(this,&#39;acceptMessages&#39;)" jstcache="33">
                </a>
              </div>
            </td>
        </tr></tbody></table>
      </div>
    </div>

    <div class="fc-promo-main" id="promo-tpl" jsdisplay="promoHtml" jstcache="34">
      <div jseval="insertHtml(this, promoHtml);" jstcache="35"></div>
    </div>

    <div class="fc-members" id="friend-requests-tpl">
      <div transclude="topcap-tpl"></div>
      <div class="fc-scroll-botnav fc-content-bg">
        <div class="fc-friendreq" jsselect="friendRequests.asArray()">
          <div class="fc-userpic" jsselect="$this.getField(google.FriendConnect.Invite.Field.INVITER)">
            <div transclude="member-thumb-tpl"></div>
          </div>
          <div class="fc-userpic-caption">
            <span jsselect="$this.getField(google.FriendConnect.Invite.Field.INVITER)">
              <div class="fc-username" jscontent="getDisplayName()"></div>
              <a href="javascript:void(0);" jscontent="MSG_ADD_AS_FRIEND" jsvalues="$h:handle(this,&#39;acceptFriendRequest&#39;);.className:(isCanvasMode() ? &#39;fc-default-link fc-default-link-canvas&#39; : &#39;fc-default-link&#39;)"></a> |
              <a href="javascript:void(0);" jscontent="MSG_IGNORE" jsvalues="$h:handle(this,&#39;ignoreFriendRequest&#39;);.className:(isCanvasMode() ? &#39;fc-default-link fc-default-link-canvas&#39; : &#39;fc-default-link&#39;)"></a>
            </span>
            <div class="fc-friendreq-text" jscontent="$this" jsselect="$this.getField(google.FriendConnect.Invite.Field.MESSAGE)">
            </div>
          </div>
        </div>
        <div jsvalues=".className:(isCanvasMode() ? &#39;&#39; : &#39;fc-content&#39;)">
          <span class="fc-helpful" jscontent="MSG_HELP_FRIENDREQUEST"></span>
        </div>
      </div>
      <div transclude="bottom-paging-tpl">
      </div>
    </div>

    <div id="invitedby-tpl" jstcache="0">
      <div jsdisplay="showInvitedBy()" jstcache="36">
        <div jsselect="invitedBy" jsvalues=".className:(isCanvasMode() ? &#39;fc-invitedby-canvas&#39; : &#39;fc-invitedby&#39;)" jstcache="37">
          <div class="fc-userpic" jstcache="0">
            <div transclude="member-thumb-tpl" jstcache="27"></div>
          </div>
          <div class="fc-invitedby-text" jscontent="MSG_INVITED_YOU" jstcache="38"></div>
          <div class="fc-invitedby-link-container" jstcache="0"><a class="fc-invitedby-link" href="javascript:void(0);" jscontent="MSG_VIEW_INVITER_PROFILE" jsvalues="$h:handle(this,&#39;viewProfile&#39;)" jstcache="39"></a></div>
        </div>
      </div>
    </div>

    <div id="friendreqs-tpl" jstcache="0">
      <div jsdisplay="$this.size()" jsselect="friendRequests" jsvalues=".className:(isCanvasMode() ? &#39;fc-friendreqs-canvas&#39; : &#39;fc-friendreqs&#39;)" jstcache="40">
        <div class="fc-userpic" jsselect="asArray()[0].getField(google.FriendConnect.Invite.Field.INVITER)" jstcache="41">
          <div transclude="member-thumb-tpl" jstcache="27"></div>
        </div>
        <a class="fc-friendreqs-link" href="javascript:void(0);" jscontent="MSG_NEW_FRIEND_REQUESTS" jsvalues="$h:handle(this,&#39;viewFriendRequests&#39;)" jstcache="42"></a>
      </div>
    </div>

    <div class="fc-members" id="faces-tpl" jsvars="friendReqs:(friendRequests &amp;&amp; friendRequests.size() &gt; 0)" jstcache="1">
      <div transclude="topcap-tpl" jstcache="2"></div>
      <div transclude="waiting-messages-tpl" jstcache="3"></div>
      <div transclude="promo-tpl" jstcache="4"></div>
      <div transclude="invitedby-tpl" jstcache="5"></div>
      <div transclude="friendreqs-tpl" jstcache="6"></div>
      <div jsvars="dropARow:(friendReqs || showInvitedBy() || showWaitingMessages || promoHtml)" jstcache="7">
        <div jsvalues=".className:(dropARow ? &#39;fc-content-bg fc-noscroll-friendreq&#39; : &#39;fc-content-bg fc-noscroll&#39;)" jstcache="9">
          <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-canvas fc-minheight&#39; : &#39;fc-content&#39;)" style="padding-bottom:0px" jstcache="10">
            <div class="fc-no-elements" jsdisplay="!members || !members.getTotalSize()" jstcache="11">
              <div jscontent="MSG_NO_SITE_MEMBERS" jstcache="14">
              </div>
              <a href="javascript:void(0);" jscontent="MSG_BE_THE_FIRST" jsvalues="$h:handle(this,&#39;signin&#39;)" jstcache="15"></a>
            </div>
            <div jsselect="members" jsvars="label:MSG_SITE_MEMBERS;showAllHandler:showAllMembers;numPreviewItems:numPreviewMembers(dropARow);showBlockedFilter:false;needsZoomyForNoTop:hasMenuMode(&#39;members&#39;)" jstcache="12">
              <div transclude="faces-preview-tpl" jstcache="16">
              </div>
            </div>
            <div jsselect="friends" jsvars="label:MSG_YOUR_FRIENDS;showAllHandler:showAllViewerFriends;numPreviewItems:numPreviewFriends(dropARow);showBlockedFilter:false;needsZoomyForNoTop:false" jstcache="13">
              <div transclude="faces-preview-tpl" jstcache="16">
              </div>
            </div>
          </div>
        </div>
      </div>
    <div transclude="footer-text-tpl" jstcache="8"></div>
    </div>

    <div class="fc-members" id="faces-tpl:canvas" jsvars="friendReqs:(friendRequests &amp;&amp; friendRequests.size() &gt; 0)">
      <div transclude="waiting-messages-tpl"></div>
      <div transclude="promo-tpl"></div>
      <div transclude="invitedby-tpl"></div>
      <div transclude="friendreqs-tpl"></div>
      <div jsvalues=".className:(isCanvasMode() ? &#39;fc-content-bg fc-minheight&#39; : &#39;fc-content&#39;)">
        <div jsselect="members" jsvars="label:MSG_SITE_MEMBERS;showAllHandler:showAllMembers;numPreviewItems:numPreviewMembers(friendReqs);showBlockedFilter:isViewerAdmin">
          <div transclude="faces-preview-large-tpl">
          </div>
        </div>
        <div class="fc-no-elements" jscontent="MSG_NO_SITE_MEMBERS" jsdisplay="!members || !members.getTotalSize()">
        </div>
        <div jsselect="friends" jsvars="label:MSG_YOUR_FRIENDS;showAllHandler:showAllViewerFriends;numPreviewItems:numPreviewFriends(friendReqs);showBlockedFilter:false">
          <div transclude="faces-preview-large-tpl">
          </div>
        </div>
      </div>
      <div transclude="footer-text-tpl"></div>
    </div>

    <div class="fc-mem-grid" id="faces-preview-tpl" jsdisplay="$this &amp;&amp; $this.size() &amp;&amp; numPreviewItems &gt; 0" jstcache="43">
        <div jsdisplay="needsZoomyForNoTop" jstcache="44">
          <div transclude="zoomy-tpl" jstcache="24"></div>
        </div>
      <div jsvalues=".className:(isCanvasMode() ? &#39;fc-sectitle fc-sectitle-canvas&#39; : &#39;fc-sectitle&#39;)" jstcache="45">
        <span jscontent="label" jstcache="47"></span>&nbsp;(<span jscontent="$this.getTotalSize() || &#39;0&#39;" jstcache="48"></span>)
        <a class="fc-see-all" href="javascript:void(0);" jscontent="MSG_MORE" jsdisplay="$this.getTotalSize() &gt; numPreviewItems" jsvalues="$h:handle(this,showAllHandler)" jstcache="49"></a>
        <span jsdisplay="showBlockedFilter" jstcache="50">
          <a class="fc-see-all" href="javascript:void(0);" jscontent="MSG_SHOW_BLOCKED" jsvalues="$h:handle(this,showBlockedMembers)" jstcache="51"></a>
        </span>
      </div>
      <div class="clear" jstcache="0"></div>
      <div class="fc-thumbnail" jsselect="safeSlice($this.asArray(), 0, numPreviewItems)" jstcache="46">
        <div transclude="member-thumb-tpl" jstcache="27"></div>
      </div>
      <div class="clear" jstcache="0"></div>
    </div>

    <div class="fc-mem-grid" id="faces-preview-large-tpl:canvas" jsdisplay="($this &amp;&amp; $this.size() &amp;&amp; numPreviewItems &gt; 0) || showBlockedFilter">
      <div class="fc-members-header">
        <span class="fc-header-sectitle" jscontent="label" style="font-size:15px"></span>&nbsp;(<span jscontent="$this.getTotalSize() || &#39;0&#39;"></span>)
        <span class="fc-see-all">
          <span jsdisplay="showBlockedFilter"><a href="javascript:void(0);" jscontent="MSG_SHOW_BLOCKED" jsvalues="$h:handle(this,showBlockedMembers)"></a></span>
          <a href="javascript:void(0);" jscontent="MSG_MORE" jsdisplay="$this.getTotalSize() &gt; numPreviewItems" jsvalues="$h:handle(this,showAllHandler)"></a>
        </span>
      </div>
      <div class="fc-thumbnail" jsselect="safeSlice($this.asArray(), 0, numPreviewItems)">
        <div transclude="member-thumb-large-tpl"></div>
      </div>
      <div class="clear"></div>
    </div>

    <div class="fc-subtle-botcap" id="footer-text-tpl" jstcache="0">
      <div jsdisplay="viewer != null" jstcache="53">
        <span class="fc-faded-link-small" jstcache="0">
          <a href="javascript:void(0);" jscontent="MSG_INVITE_YOUR_FRIENDS" jsvalues="$h:handle(this,&#39;invite&#39;)" jstcache="56"></a>
        </span>
      </div>
      <div jsdisplay="viewer == null" jstcache="54">
        <span class="fc-botcap-text" jscontent="MSG_ALREADY_MEMBER" jstcache="55"></span>
        <span class="fc-content-link" jstcache="0">
          <a href="javascript:void(0);" jscontent="MSG_SIGN_IN" jsvalues="$h:handle(this,&#39;signin&#39;)" jstcache="57"></a>
        </span>
      </div>
    </div>

    </div>

    <div id="gadget_js_log" style="display:none"><div>Wed Sep 18 2013 16:03:27 GMT-0500 (Central Daylight Time) -- requesting promo</div><div>Wed Sep 18 2013 16:03:27 GMT-0500 (Central Daylight Time) -- processing promo</div></div>

    <script type="text/javascript">
      _IG_RegisterOnloadHandler( function() {
        var gadget = new goog.peoplesense.gadget.Members(true,
          true, false);
        gadget.start();
      });
    </script>
    
    
  <script>gadgets.util.runOnLoadHandlers();</script><script>window.google.csi.tickDl();
</script></body></html>